Branch: refs/heads/master
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
Commit: 24f7a40d8f2735012e3619d626adf9c8dd392710
https://github.com/dyninst/dyninst/commit/24f7a40d8f2735012e3619d626adf9c8dd392710
Author: Bill Williams <bill@xxxxxxxxxxx>
Date: 2017-07-10 (Mon, 10 Jul 2017)
Changed paths:
M common/src/string-regex.C
M dataflowAPI/src/liveness.C
M dataflowAPI/src/slicing.C
M dataflowAPI/src/stackanalysis.C
M instructionAPI/src/InstructionDecoderImpl.C
M parseAPI/h/CFG.h
M parseAPI/h/CodeSource.h
M parseAPI/src/BoundFactCalculator.C
M parseAPI/src/CFGModifier.C
M parseAPI/src/CodeObject.C
M parseAPI/src/Function.C
M parseAPI/src/IA_x86.C
M parseAPI/src/IA_x86Details.C
M parseAPI/src/IndirectAnalyzer.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/ParserDetails.h
M parseAPI/src/SymtabCodeSource.C
M parseAPI/src/ThunkData.C
Log Message:
-----------
Clean up a bunch of data races reported by Cilkscreen and add per-block locks (probably bad for space, but we'll do the big redesign if we need it).
Commit: a462fa1f9b01466830e8c025b669c21eef84ccbb
https://github.com/dyninst/dyninst/commit/a462fa1f9b01466830e8c025b669c21eef84ccbb
Author: Bill Williams <bill@xxxxxxxxxxx>
Date: 2017-07-12 (Wed, 12 Jul 2017)
Changed paths:
M parseAPI/h/CFG.h
M parseAPI/h/ParseCallback.h
M parseAPI/src/ParseCallback.C
M parseAPI/src/Parser.C
Log Message:
-----------
Added extra block locks to remove some more data races; added callback and method to allow renaming of functions that would by default be "targXXX"
Commit: 8ed1ed3a7d75ce3fbc3f502c9ee5d23d22032a04
https://github.com/dyninst/dyninst/commit/8ed1ed3a7d75ce3fbc3f502c9ee5d23d22032a04
Author: Bill Williams <bill@xxxxxxxxxxx>
Date: 2017-07-20 (Thu, 20 Jul 2017)
Changed paths:
M symtabAPI/src/LineInformation.C
M symtabAPI/src/Symtab.C
Log Message:
-----------
Fix lookup for address ranges from file/line
Commit: 3275adce9bedbb34128a7e73b5d3a4e1c32d21e0
https://github.com/dyninst/dyninst/commit/3275adce9bedbb34128a7e73b5d3a4e1c32d21e0
Author: Bill Williams <bill@xxxxxxxxxxx>
Date: 2017-07-28 (Fri, 28 Jul 2017)
Changed paths:
M symtabAPI/src/LineInformation.C
M symtabAPI/src/Symtab.C
Log Message:
-----------
Fix and clean up line info lookups by source location
Commit: c5d853fc4aca129560fc79d627dca7a76c6a8d95
https://github.com/dyninst/dyninst/commit/c5d853fc4aca129560fc79d627dca7a76c6a8d95
Author: Bill Williams <bill@xxxxxxxxxxx>
Date: 2017-08-04 (Fri, 04 Aug 2017)
Changed paths:
M parseAPI/h/CFG.h
M parseAPI/src/Block.C
M parseAPI/src/CFGModifier.C
M parseAPI/src/ParseCallback.C
M parseAPI/src/ParseData.C
M parseAPI/src/ParseData.h
M parseAPI/src/Parser.C
M symtabAPI/src/Object-elf.C
M symtabAPI/src/Object-nt.h
Log Message:
-----------
Checkpointing for integration tests
Commit: dc335d015f3dfbdbf2fff73bd3b2e0d71648c849
https://github.com/dyninst/dyninst/commit/dc335d015f3dfbdbf2fff73bd3b2e0d71648c849
Author: Bill Williams <bill@xxxxxxxxxxx>
Date: 2017-08-09 (Wed, 09 Aug 2017)
Changed paths:
M parseAPI/h/CFG.h
M parseAPI/src/ParseData.h
Log Message:
-----------
Make dual locks atomic
Commit: b00c212fcaf929e0667660e65bdb7da3c3ffcf3a
https://github.com/dyninst/dyninst/commit/b00c212fcaf929e0667660e65bdb7da3c3ffcf3a
Author: Bill Williams <bill@xxxxxxxxxxx>
Date: 2017-08-16 (Wed, 16 Aug 2017)
Changed paths:
M dyninstAPI/src/parse-cfg.h
M parseAPI/h/CFG.h
M parseAPI/h/CodeObject.h
M parseAPI/src/Block.C
M parseAPI/src/CFGFactory.C
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/Parser.h
M parseAPI/src/ParserDetails.C
Log Message:
-----------
Refactor to look up target blocks via parse data and remove block-level locks associated with that lookup.
Commit: f9a3e410d1898e6b0255245ec31622912c4e1ce4
https://github.com/dyninst/dyninst/commit/f9a3e410d1898e6b0255245ec31622912c4e1ce4
Author: Bill Williams <bill@xxxxxxxxxxx>
Date: 2017-08-22 (Tue, 22 Aug 2017)
Changed paths:
M .gitignore
A common/docs/decoding_diagram.png
A common/docs/rose_structure.png
M common/h/dyn_regs.h
M common/h/entryIDs.h
M common/src/arch-x86.C
M common/src/arch-x86.h
M common/src/dyn_regs.C
M dataflowAPI/doc/StackAnalysis.tex
M dataflowAPI/doc/dataflowAPI.pdf
M dataflowAPI/h/slicing.h
M dataflowAPI/h/stackanalysis.h
R dataflowAPI/rose/powerpcInstructionSemantics.h
M dataflowAPI/rose/semantics/DispatcherARM64.C
M dataflowAPI/rose/semantics/DispatcherARM64.h
A dataflowAPI/rose/semantics/DispatcherPowerpc.C
A dataflowAPI/rose/semantics/DispatcherPowerpc.h
M dataflowAPI/rose/semantics/Registers.C
M dataflowAPI/rose/semantics/Registers.h
M dataflowAPI/rose/semantics/SymEvalSemantics.C
M dataflowAPI/rose/semantics/SymEvalSemantics.h
M dataflowAPI/rose/util/PoolAllocator.h
M dataflowAPI/src/AbslocInterface.C
M dataflowAPI/src/ExpressionConversionVisitor.C
M dataflowAPI/src/RoseImpl.C
M dataflowAPI/src/RoseInsnFactory.C
M dataflowAPI/src/SymEval.C
M dataflowAPI/src/SymbolicExpansion.C
M dataflowAPI/src/SymbolicExpansion.h
M dataflowAPI/src/convertOpcodes.C
M dataflowAPI/src/liveness.C
M dataflowAPI/src/slicing.C
M dataflowAPI/src/stackanalysis.C
M dyninstAPI/h/StackMod.h
M dyninstAPI/src/Relocation/Transformers/Movement-adhoc.C
M dyninstAPI/src/Relocation/Transformers/Movement-analysis.C
M dyninstAPI/src/StackMod/StackAccess.C
M dyninstAPI/src/inst-x86.C
M external/rose/powerpcInstructionEnum.h
M instructionAPI/CMakeLists.txt
A instructionAPI/ISA_ps/abs_advsimd
A instructionAPI/ISA_ps/adc
A instructionAPI/ISA_ps/adcs
A instructionAPI/ISA_ps/add_addsub_ext
A instructionAPI/ISA_ps/add_addsub_imm
A instructionAPI/ISA_ps/add_addsub_shift
A instructionAPI/ISA_ps/add_advsimd
A instructionAPI/ISA_ps/addhn_advsimd
A instructionAPI/ISA_ps/addp_advsimd_pair
A instructionAPI/ISA_ps/addp_advsimd_vec
A instructionAPI/ISA_ps/adds_addsub_ext
A instructionAPI/ISA_ps/adds_addsub_imm
A instructionAPI/ISA_ps/adds_addsub_shift
A instructionAPI/ISA_ps/addv_advsimd
A instructionAPI/ISA_ps/adr
A instructionAPI/ISA_ps/adrp
A instructionAPI/ISA_ps/aesd_advsimd
A instructionAPI/ISA_ps/aese_advsimd
A instructionAPI/ISA_ps/aesimc_advsimd
A instructionAPI/ISA_ps/aesmc_advsimd
A instructionAPI/ISA_ps/and_advsimd
A instructionAPI/ISA_ps/and_log_imm
A instructionAPI/ISA_ps/and_log_shift
A instructionAPI/ISA_ps/ands_log_imm
A instructionAPI/ISA_ps/ands_log_shift
A instructionAPI/ISA_ps/asr_asrv
A instructionAPI/ISA_ps/asr_sbfm
A instructionAPI/ISA_ps/asrv
A instructionAPI/ISA_ps/at_sys
A instructionAPI/ISA_ps/b_cond
A instructionAPI/ISA_ps/b_uncond
A instructionAPI/ISA_ps/bfi_bfm
A instructionAPI/ISA_ps/bfm
A instructionAPI/ISA_ps/bfxil_bfm
A instructionAPI/ISA_ps/bic_advsimd_imm
A instructionAPI/ISA_ps/bic_advsimd_reg
A instructionAPI/ISA_ps/bic_log_shift
A instructionAPI/ISA_ps/bics
A instructionAPI/ISA_ps/bif_advsimd
A instructionAPI/ISA_ps/bit_advsimd
A instructionAPI/ISA_ps/bl
A instructionAPI/ISA_ps/blr
A instructionAPI/ISA_ps/br
A instructionAPI/ISA_ps/brk
A instructionAPI/ISA_ps/bsl_advsimd
A instructionAPI/ISA_ps/cbnz
A instructionAPI/ISA_ps/cbz
A instructionAPI/ISA_ps/ccmn_imm
A instructionAPI/ISA_ps/ccmn_reg
A instructionAPI/ISA_ps/ccmp_imm
A instructionAPI/ISA_ps/ccmp_reg
A instructionAPI/ISA_ps/cinc_csinc
A instructionAPI/ISA_ps/cinv_csinv
A instructionAPI/ISA_ps/clrex
A instructionAPI/ISA_ps/cls_advsimd
A instructionAPI/ISA_ps/cls_int
A instructionAPI/ISA_ps/clz_advsimd
A instructionAPI/ISA_ps/clz_int
A instructionAPI/ISA_ps/cmeq_advsimd_reg
A instructionAPI/ISA_ps/cmeq_advsimd_zero
A instructionAPI/ISA_ps/cmge_advsimd_reg
A instructionAPI/ISA_ps/cmge_advsimd_zero
A instructionAPI/ISA_ps/cmgt_advsimd_reg
A instructionAPI/ISA_ps/cmgt_advsimd_zero
A instructionAPI/ISA_ps/cmhi_advsimd
A instructionAPI/ISA_ps/cmhs_advsimd
A instructionAPI/ISA_ps/cmle_advsimd
A instructionAPI/ISA_ps/cmlt_advsimd
A instructionAPI/ISA_ps/cmn_adds_addsub_ext
A instructionAPI/ISA_ps/cmn_adds_addsub_imm
A instructionAPI/ISA_ps/cmn_adds_addsub_shift
A instructionAPI/ISA_ps/cmp_subs_addsub_ext
A instructionAPI/ISA_ps/cmp_subs_addsub_imm
A instructionAPI/ISA_ps/cmp_subs_addsub_shift
A instructionAPI/ISA_ps/cmtst_advsimd
A instructionAPI/ISA_ps/cneg_csneg
A instructionAPI/ISA_ps/cnt_advsimd
A instructionAPI/ISA_ps/crc32
A instructionAPI/ISA_ps/crc32c
A instructionAPI/ISA_ps/csel
A instructionAPI/ISA_ps/cset_csinc
A instructionAPI/ISA_ps/csetm_csinv
A instructionAPI/ISA_ps/csinc
A instructionAPI/ISA_ps/csinv
A instructionAPI/ISA_ps/csneg
A instructionAPI/ISA_ps/dc_sys
A instructionAPI/ISA_ps/dcps1
A instructionAPI/ISA_ps/dcps2
A instructionAPI/ISA_ps/dcps3
A instructionAPI/ISA_ps/dmb
A instructionAPI/ISA_ps/drps
A instructionAPI/ISA_ps/dsb
A instructionAPI/ISA_ps/dup_advsimd_elt
A instructionAPI/ISA_ps/dup_advsimd_gen
A instructionAPI/ISA_ps/encodingindex
A instructionAPI/ISA_ps/enumerated-symbol-accounts
A instructionAPI/ISA_ps/eon
A instructionAPI/ISA_ps/eor_advsimd
A instructionAPI/ISA_ps/eor_log_imm
A instructionAPI/ISA_ps/eor_log_shift
A instructionAPI/ISA_ps/eret
A instructionAPI/ISA_ps/ext_advsimd
A instructionAPI/ISA_ps/extr
A instructionAPI/ISA_ps/fabd_advsimd
A instructionAPI/ISA_ps/fabs_advsimd
A instructionAPI/ISA_ps/fabs_float
A instructionAPI/ISA_ps/facge_advsimd
A instructionAPI/ISA_ps/facgt_advsimd
A instructionAPI/ISA_ps/fadd_advsimd
A instructionAPI/ISA_ps/fadd_float
A instructionAPI/ISA_ps/faddp_advsimd_pair
A instructionAPI/ISA_ps/faddp_advsimd_vec
A instructionAPI/ISA_ps/fccmp_float
A instructionAPI/ISA_ps/fccmpe_float
A instructionAPI/ISA_ps/fcmeq_advsimd_reg
A instructionAPI/ISA_ps/fcmeq_advsimd_zero
A instructionAPI/ISA_ps/fcmge_advsimd_reg
A instructionAPI/ISA_ps/fcmge_advsimd_zero
A instructionAPI/ISA_ps/fcmgt_advsimd_reg
A instructionAPI/ISA_ps/fcmgt_advsimd_zero
A instructionAPI/ISA_ps/fcmle_advsimd
A instructionAPI/ISA_ps/fcmlt_advsimd
A instructionAPI/ISA_ps/fcmp_float
A instructionAPI/ISA_ps/fcmpe_float
A instructionAPI/ISA_ps/fcsel_float
A instructionAPI/ISA_ps/fcvt_float
A instructionAPI/ISA_ps/fcvtas_advsimd
A instructionAPI/ISA_ps/fcvtas_float
A instructionAPI/ISA_ps/fcvtau_advsimd
A instructionAPI/ISA_ps/fcvtau_float
A instructionAPI/ISA_ps/fcvtl_advsimd
A instructionAPI/ISA_ps/fcvtms_advsimd
A instructionAPI/ISA_ps/fcvtms_float
A instructionAPI/ISA_ps/fcvtmu_advsimd
A instructionAPI/ISA_ps/fcvtmu_float
A instructionAPI/ISA_ps/fcvtn_advsimd
A instructionAPI/ISA_ps/fcvtns_advsimd
A instructionAPI/ISA_ps/fcvtns_float
A instructionAPI/ISA_ps/fcvtnu_advsimd
A instructionAPI/ISA_ps/fcvtnu_float
A instructionAPI/ISA_ps/fcvtps_advsimd
A instructionAPI/ISA_ps/fcvtps_float
A instructionAPI/ISA_ps/fcvtpu_advsimd
A instructionAPI/ISA_ps/fcvtpu_float
A instructionAPI/ISA_ps/fcvtxn_advsimd
A instructionAPI/ISA_ps/fcvtzs_advsimd_fix
A instructionAPI/ISA_ps/fcvtzs_advsimd_int
A instructionAPI/ISA_ps/fcvtzs_float_fix
A instructionAPI/ISA_ps/fcvtzs_float_int
A instructionAPI/ISA_ps/fcvtzu_advsimd_fix
A instructionAPI/ISA_ps/fcvtzu_advsimd_int
A instructionAPI/ISA_ps/fcvtzu_float_fix
A instructionAPI/ISA_ps/fcvtzu_float_int
A instructionAPI/ISA_ps/fdiv_advsimd
A instructionAPI/ISA_ps/fdiv_float
A instructionAPI/ISA_ps/fmadd_float
A instructionAPI/ISA_ps/fmax_advsimd
A instructionAPI/ISA_ps/fmax_float
A instructionAPI/ISA_ps/fmaxnm_advsimd
A instructionAPI/ISA_ps/fmaxnm_float
A instructionAPI/ISA_ps/fmaxnmp_advsimd_pair
A instructionAPI/ISA_ps/fmaxnmp_advsimd_vec
A instructionAPI/ISA_ps/fmaxnmv_advsimd
A instructionAPI/ISA_ps/fmaxp_advsimd_pair
A instructionAPI/ISA_ps/fmaxp_advsimd_vec
A instructionAPI/ISA_ps/fmaxv_advsimd
A instructionAPI/ISA_ps/fmin_advsimd
A instructionAPI/ISA_ps/fmin_float
A instructionAPI/ISA_ps/fminnm_advsimd
A instructionAPI/ISA_ps/fminnm_float
A instructionAPI/ISA_ps/fminnmp_advsimd_pair
A instructionAPI/ISA_ps/fminnmp_advsimd_vec
A instructionAPI/ISA_ps/fminnmv_advsimd
A instructionAPI/ISA_ps/fminp_advsimd_pair
A instructionAPI/ISA_ps/fminp_advsimd_vec
A instructionAPI/ISA_ps/fminv_advsimd
A instructionAPI/ISA_ps/fmla_advsimd_elt
A instructionAPI/ISA_ps/fmla_advsimd_vec
A instructionAPI/ISA_ps/fmls_advsimd_elt
A instructionAPI/ISA_ps/fmls_advsimd_vec
A instructionAPI/ISA_ps/fmov_advsimd
A instructionAPI/ISA_ps/fmov_float
A instructionAPI/ISA_ps/fmov_float_gen
A instructionAPI/ISA_ps/fmov_float_imm
A instructionAPI/ISA_ps/fmsub_float
A instructionAPI/ISA_ps/fmul_advsimd_elt
A instructionAPI/ISA_ps/fmul_advsimd_vec
A instructionAPI/ISA_ps/fmul_float
A instructionAPI/ISA_ps/fmulx_advsimd_elt
A instructionAPI/ISA_ps/fmulx_advsimd_vec
A instructionAPI/ISA_ps/fneg_advsimd
A instructionAPI/ISA_ps/fneg_float
A instructionAPI/ISA_ps/fnmadd_float
A instructionAPI/ISA_ps/fnmsub_float
A instructionAPI/ISA_ps/fnmul_float
A instructionAPI/ISA_ps/fpsimdindex
A instructionAPI/ISA_ps/frecpe_advsimd
A instructionAPI/ISA_ps/frecps_advsimd
A instructionAPI/ISA_ps/frecpx_advsimd
A instructionAPI/ISA_ps/frinta_advsimd
A instructionAPI/ISA_ps/frinta_float
A instructionAPI/ISA_ps/frinti_advsimd
A instructionAPI/ISA_ps/frinti_float
A instructionAPI/ISA_ps/frintm_advsimd
A instructionAPI/ISA_ps/frintm_float
A instructionAPI/ISA_ps/frintn_advsimd
A instructionAPI/ISA_ps/frintn_float
A instructionAPI/ISA_ps/frintp_advsimd
A instructionAPI/ISA_ps/frintp_float
A instructionAPI/ISA_ps/frintx_advsimd
A instructionAPI/ISA_ps/frintx_float
A instructionAPI/ISA_ps/frintz_advsimd
A instructionAPI/ISA_ps/frintz_float
A instructionAPI/ISA_ps/frsqrte_advsimd
A instructionAPI/ISA_ps/frsqrts_advsimd
A instructionAPI/ISA_ps/fsqrt_advsimd
A instructionAPI/ISA_ps/fsqrt_float
A instructionAPI/ISA_ps/fsub_advsimd
A instructionAPI/ISA_ps/fsub_float
A instructionAPI/ISA_ps/hint
A instructionAPI/ISA_ps/hlt
A instructionAPI/ISA_ps/hvc
A instructionAPI/ISA_ps/ic_sys
A instructionAPI/ISA_ps/index
A instructionAPI/ISA_ps/ins_advsimd_elt
A instructionAPI/ISA_ps/ins_advsimd_gen
A instructionAPI/ISA_ps/isb
A instructionAPI/ISA_ps/ld1_advsimd_mult
A instructionAPI/ISA_ps/ld1_advsimd_sngl
A instructionAPI/ISA_ps/ld1r_advsimd
A instructionAPI/ISA_ps/ld2_advsimd_mult
A instructionAPI/ISA_ps/ld2_advsimd_sngl
A instructionAPI/ISA_ps/ld2r_advsimd
A instructionAPI/ISA_ps/ld3_advsimd_mult
A instructionAPI/ISA_ps/ld3_advsimd_sngl
A instructionAPI/ISA_ps/ld3r_advsimd
A instructionAPI/ISA_ps/ld4_advsimd_mult
A instructionAPI/ISA_ps/ld4_advsimd_sngl
A instructionAPI/ISA_ps/ld4r_advsimd
A instructionAPI/ISA_ps/ldar
A instructionAPI/ISA_ps/ldarb
A instructionAPI/ISA_ps/ldarh
A instructionAPI/ISA_ps/ldaxp
A instructionAPI/ISA_ps/ldaxr
A instructionAPI/ISA_ps/ldaxrb
A instructionAPI/ISA_ps/ldaxrh
A instructionAPI/ISA_ps/ldnp_fpsimd
A instructionAPI/ISA_ps/ldnp_gen
A instructionAPI/ISA_ps/ldp_fpsimd
A instructionAPI/ISA_ps/ldp_gen
A instructionAPI/ISA_ps/ldpsw
A instructionAPI/ISA_ps/ldr_imm_fpsimd
A instructionAPI/ISA_ps/ldr_imm_gen
A instructionAPI/ISA_ps/ldr_lit_fpsimd
A instructionAPI/ISA_ps/ldr_lit_gen
A instructionAPI/ISA_ps/ldr_reg_fpsimd
A instructionAPI/ISA_ps/ldr_reg_gen
A instructionAPI/ISA_ps/ldrb_imm
A instructionAPI/ISA_ps/ldrb_reg
A instructionAPI/ISA_ps/ldrh_imm
A instructionAPI/ISA_ps/ldrh_reg
A instructionAPI/ISA_ps/ldrsb_imm
A instructionAPI/ISA_ps/ldrsb_reg
A instructionAPI/ISA_ps/ldrsh_imm
A instructionAPI/ISA_ps/ldrsh_reg
A instructionAPI/ISA_ps/ldrsw_imm
A instructionAPI/ISA_ps/ldrsw_lit
A instructionAPI/ISA_ps/ldrsw_reg
A instructionAPI/ISA_ps/ldtr
A instructionAPI/ISA_ps/ldtrb
A instructionAPI/ISA_ps/ldtrh
A instructionAPI/ISA_ps/ldtrsb
A instructionAPI/ISA_ps/ldtrsh
A instructionAPI/ISA_ps/ldtrsw
A instructionAPI/ISA_ps/ldur_fpsimd
A instructionAPI/ISA_ps/ldur_gen
A instructionAPI/ISA_ps/ldurb
A instructionAPI/ISA_ps/ldurh
A instructionAPI/ISA_ps/ldursb
A instructionAPI/ISA_ps/ldursh
A instructionAPI/ISA_ps/ldursw
A instructionAPI/ISA_ps/ldxp
A instructionAPI/ISA_ps/ldxr
A instructionAPI/ISA_ps/ldxrb
A instructionAPI/ISA_ps/ldxrh
A instructionAPI/ISA_ps/lsl_lslv
A instructionAPI/ISA_ps/lsl_ubfm
A instructionAPI/ISA_ps/lslv
A instructionAPI/ISA_ps/lsr_lsrv
A instructionAPI/ISA_ps/lsr_ubfm
A instructionAPI/ISA_ps/lsrv
A instructionAPI/ISA_ps/madd
A instructionAPI/ISA_ps/mla_advsimd_elt
A instructionAPI/ISA_ps/mla_advsimd_vec
A instructionAPI/ISA_ps/mls_advsimd_elt
A instructionAPI/ISA_ps/mls_advsimd_vec
A instructionAPI/ISA_ps/mneg_msub
A instructionAPI/ISA_ps/mov_add_addsub_imm
A instructionAPI/ISA_ps/mov_dup_advsimd_elt
A instructionAPI/ISA_ps/mov_ins_advsimd_elt
A instructionAPI/ISA_ps/mov_ins_advsimd_gen
A instructionAPI/ISA_ps/mov_movn
A instructionAPI/ISA_ps/mov_movz
A instructionAPI/ISA_ps/mov_orr_advsimd_reg
A instructionAPI/ISA_ps/mov_orr_log_imm
A instructionAPI/ISA_ps/mov_orr_log_shift
A instructionAPI/ISA_ps/mov_umov_advsimd
A instructionAPI/ISA_ps/movi_advsimd
A instructionAPI/ISA_ps/movk
A instructionAPI/ISA_ps/movn
A instructionAPI/ISA_ps/movz
A instructionAPI/ISA_ps/mrs
A instructionAPI/ISA_ps/msr_imm
A instructionAPI/ISA_ps/msr_reg
A instructionAPI/ISA_ps/msub
A instructionAPI/ISA_ps/mul_advsimd_elt
A instructionAPI/ISA_ps/mul_advsimd_vec
A instructionAPI/ISA_ps/mul_madd
A instructionAPI/ISA_ps/mvn_not_advsimd
A instructionAPI/ISA_ps/mvn_orn_log_shift
A instructionAPI/ISA_ps/mvni_advsimd
A instructionAPI/ISA_ps/neg_advsimd
A instructionAPI/ISA_ps/neg_sub_addsub_shift
A instructionAPI/ISA_ps/negs_subs_addsub_shift
A instructionAPI/ISA_ps/ngc_sbc
A instructionAPI/ISA_ps/ngcs_sbcs
A instructionAPI/ISA_ps/nop_hint
A instructionAPI/ISA_ps/not_advsimd
A instructionAPI/ISA_ps/orn_advsimd
A instructionAPI/ISA_ps/orn_log_shift
A instructionAPI/ISA_ps/orr_advsimd_imm
A instructionAPI/ISA_ps/orr_advsimd_reg
A instructionAPI/ISA_ps/orr_log_imm
A instructionAPI/ISA_ps/orr_log_shift
A instructionAPI/ISA_ps/permindex
A instructionAPI/ISA_ps/pmul_advsimd
A instructionAPI/ISA_ps/pmull_advsimd
A instructionAPI/ISA_ps/prfm_imm
A instructionAPI/ISA_ps/prfm_lit
A instructionAPI/ISA_ps/prfm_reg
A instructionAPI/ISA_ps/prfum
A instructionAPI/ISA_ps/raddhn_advsimd
A instructionAPI/ISA_ps/rbit_advsimd
A instructionAPI/ISA_ps/rbit_int
A instructionAPI/ISA_ps/ret
A instructionAPI/ISA_ps/rev
A instructionAPI/ISA_ps/rev16_advsimd
A instructionAPI/ISA_ps/rev16_int
A instructionAPI/ISA_ps/rev32_advsimd
A instructionAPI/ISA_ps/rev32_int
A instructionAPI/ISA_ps/rev64_advsimd
A instructionAPI/ISA_ps/ror_extr
A instructionAPI/ISA_ps/ror_rorv
A instructionAPI/ISA_ps/rorv
A instructionAPI/ISA_ps/rshrn_advsimd
A instructionAPI/ISA_ps/rsubhn_advsimd
A instructionAPI/ISA_ps/saba_advsimd
A instructionAPI/ISA_ps/sabal_advsimd
A instructionAPI/ISA_ps/sabd_advsimd
A instructionAPI/ISA_ps/sabdl_advsimd
A instructionAPI/ISA_ps/sadalp_advsimd
A instructionAPI/ISA_ps/saddl_advsimd
A instructionAPI/ISA_ps/saddlp_advsimd
A instructionAPI/ISA_ps/saddlv_advsimd
A instructionAPI/ISA_ps/saddw_advsimd
A instructionAPI/ISA_ps/sbc
A instructionAPI/ISA_ps/sbcs
A instructionAPI/ISA_ps/sbfiz_sbfm
A instructionAPI/ISA_ps/sbfm
A instructionAPI/ISA_ps/sbfx_sbfm
A instructionAPI/ISA_ps/scvtf_advsimd_fix
A instructionAPI/ISA_ps/scvtf_advsimd_int
A instructionAPI/ISA_ps/scvtf_float_fix
A instructionAPI/ISA_ps/scvtf_float_int
A instructionAPI/ISA_ps/sdiv
A instructionAPI/ISA_ps/sev_hint
A instructionAPI/ISA_ps/sevl_hint
A instructionAPI/ISA_ps/sha1c_advsimd
A instructionAPI/ISA_ps/sha1h_advsimd
A instructionAPI/ISA_ps/sha1m_advsimd
A instructionAPI/ISA_ps/sha1p_advsimd
A instructionAPI/ISA_ps/sha1su0_advsimd
A instructionAPI/ISA_ps/sha1su1_advsimd
A instructionAPI/ISA_ps/sha256h2_advsimd
A instructionAPI/ISA_ps/sha256h_advsimd
A instructionAPI/ISA_ps/sha256su0_advsimd
A instructionAPI/ISA_ps/sha256su1_advsimd
A instructionAPI/ISA_ps/shadd_advsimd
A instructionAPI/ISA_ps/shared_pseudocode
A instructionAPI/ISA_ps/shl_advsimd
A instructionAPI/ISA_ps/shll_advsimd
A instructionAPI/ISA_ps/shrn_advsimd
A instructionAPI/ISA_ps/shsub_advsimd
A instructionAPI/ISA_ps/sli_advsimd
A instructionAPI/ISA_ps/smaddl
A instructionAPI/ISA_ps/smax_advsimd
A instructionAPI/ISA_ps/smaxp_advsimd
A instructionAPI/ISA_ps/smaxv_advsimd
A instructionAPI/ISA_ps/smc
A instructionAPI/ISA_ps/smin_advsimd
A instructionAPI/ISA_ps/sminp_advsimd
A instructionAPI/ISA_ps/sminv_advsimd
A instructionAPI/ISA_ps/smlal_advsimd_elt
A instructionAPI/ISA_ps/smlal_advsimd_vec
A instructionAPI/ISA_ps/smlsl_advsimd_elt
A instructionAPI/ISA_ps/smlsl_advsimd_vec
A instructionAPI/ISA_ps/smnegl_smsubl
A instructionAPI/ISA_ps/smov_advsimd
A instructionAPI/ISA_ps/smsubl
A instructionAPI/ISA_ps/smulh
A instructionAPI/ISA_ps/smull_advsimd_elt
A instructionAPI/ISA_ps/smull_advsimd_vec
A instructionAPI/ISA_ps/smull_smaddl
A instructionAPI/ISA_ps/sqabs_advsimd
A instructionAPI/ISA_ps/sqadd_advsimd
A instructionAPI/ISA_ps/sqdmlal_advsimd_elt
A instructionAPI/ISA_ps/sqdmlal_advsimd_vec
A instructionAPI/ISA_ps/sqdmlsl_advsimd_elt
A instructionAPI/ISA_ps/sqdmlsl_advsimd_vec
A instructionAPI/ISA_ps/sqdmulh_advsimd_elt
A instructionAPI/ISA_ps/sqdmulh_advsimd_vec
A instructionAPI/ISA_ps/sqdmull_advsimd_elt
A instructionAPI/ISA_ps/sqdmull_advsimd_vec
A instructionAPI/ISA_ps/sqneg_advsimd
A instructionAPI/ISA_ps/sqrdmulh_advsimd_elt
A instructionAPI/ISA_ps/sqrdmulh_advsimd_vec
A instructionAPI/ISA_ps/sqrshl_advsimd
A instructionAPI/ISA_ps/sqrshrn_advsimd
A instructionAPI/ISA_ps/sqrshrun_advsimd
A instructionAPI/ISA_ps/sqshl_advsimd_imm
A instructionAPI/ISA_ps/sqshl_advsimd_reg
A instructionAPI/ISA_ps/sqshlu_advsimd
A instructionAPI/ISA_ps/sqshrn_advsimd
A instructionAPI/ISA_ps/sqshrun_advsimd
A instructionAPI/ISA_ps/sqsub_advsimd
A instructionAPI/ISA_ps/sqxtn_advsimd
A instructionAPI/ISA_ps/sqxtun_advsimd
A instructionAPI/ISA_ps/srhadd_advsimd
A instructionAPI/ISA_ps/sri_advsimd
A instructionAPI/ISA_ps/srshl_advsimd
A instructionAPI/ISA_ps/srshr_advsimd
A instructionAPI/ISA_ps/srsra_advsimd
A instructionAPI/ISA_ps/sshl_advsimd
A instructionAPI/ISA_ps/sshll_advsimd
A instructionAPI/ISA_ps/sshr_advsimd
A instructionAPI/ISA_ps/ssra_advsimd
A instructionAPI/ISA_ps/ssubl_advsimd
A instructionAPI/ISA_ps/ssubw_advsimd
A instructionAPI/ISA_ps/st1_advsimd_mult
A instructionAPI/ISA_ps/st1_advsimd_sngl
A instructionAPI/ISA_ps/st2_advsimd_mult
A instructionAPI/ISA_ps/st2_advsimd_sngl
A instructionAPI/ISA_ps/st3_advsimd_mult
A instructionAPI/ISA_ps/st3_advsimd_sngl
A instructionAPI/ISA_ps/st4_advsimd_mult
A instructionAPI/ISA_ps/st4_advsimd_sngl
A instructionAPI/ISA_ps/stlr
A instructionAPI/ISA_ps/stlrb
A instructionAPI/ISA_ps/stlrh
A instructionAPI/ISA_ps/stlxp
A instructionAPI/ISA_ps/stlxr
A instructionAPI/ISA_ps/stlxrb
A instructionAPI/ISA_ps/stlxrh
A instructionAPI/ISA_ps/stnp_fpsimd
A instructionAPI/ISA_ps/stnp_gen
A instructionAPI/ISA_ps/stp_fpsimd
A instructionAPI/ISA_ps/stp_gen
A instructionAPI/ISA_ps/str_imm_fpsimd
A instructionAPI/ISA_ps/str_imm_gen
A instructionAPI/ISA_ps/str_reg_fpsimd
A instructionAPI/ISA_ps/str_reg_gen
A instructionAPI/ISA_ps/strb_imm
A instructionAPI/ISA_ps/strb_reg
A instructionAPI/ISA_ps/strh_imm
A instructionAPI/ISA_ps/strh_reg
A instructionAPI/ISA_ps/sttr
A instructionAPI/ISA_ps/sttrb
A instructionAPI/ISA_ps/sttrh
A instructionAPI/ISA_ps/stur_fpsimd
A instructionAPI/ISA_ps/stur_gen
A instructionAPI/ISA_ps/sturb
A instructionAPI/ISA_ps/sturh
A instructionAPI/ISA_ps/stxp
A instructionAPI/ISA_ps/stxr
A instructionAPI/ISA_ps/stxrb
A instructionAPI/ISA_ps/stxrh
A instructionAPI/ISA_ps/sub_addsub_ext
A instructionAPI/ISA_ps/sub_addsub_imm
A instructionAPI/ISA_ps/sub_addsub_shift
A instructionAPI/ISA_ps/sub_advsimd
A instructionAPI/ISA_ps/subhn_advsimd
A instructionAPI/ISA_ps/subs_addsub_ext
A instructionAPI/ISA_ps/subs_addsub_imm
A instructionAPI/ISA_ps/subs_addsub_shift
A instructionAPI/ISA_ps/suqadd_advsimd
A instructionAPI/ISA_ps/svc
A instructionAPI/ISA_ps/sxtb_sbfm
A instructionAPI/ISA_ps/sxth_sbfm
A instructionAPI/ISA_ps/sxtl_sshll_advsimd
A instructionAPI/ISA_ps/sxtw_sbfm
A instructionAPI/ISA_ps/sys
A instructionAPI/ISA_ps/sysl
A instructionAPI/ISA_ps/tbl_advsimd
A instructionAPI/ISA_ps/tbnz
A instructionAPI/ISA_ps/tbx_advsimd
A instructionAPI/ISA_ps/tbz
A instructionAPI/ISA_ps/temp.py
A instructionAPI/ISA_ps/tlbi_sys
A instructionAPI/ISA_ps/trn1_advsimd
A instructionAPI/ISA_ps/trn2_advsimd
A instructionAPI/ISA_ps/tst_ands_log_imm
A instructionAPI/ISA_ps/tst_ands_log_shift
A instructionAPI/ISA_ps/uaba_advsimd
A instructionAPI/ISA_ps/uabal_advsimd
A instructionAPI/ISA_ps/uabd_advsimd
A instructionAPI/ISA_ps/uabdl_advsimd
A instructionAPI/ISA_ps/uadalp_advsimd
A instructionAPI/ISA_ps/uaddl_advsimd
A instructionAPI/ISA_ps/uaddlp_advsimd
A instructionAPI/ISA_ps/uaddlv_advsimd
A instructionAPI/ISA_ps/uaddw_advsimd
A instructionAPI/ISA_ps/ubfiz_ubfm
A instructionAPI/ISA_ps/ubfm
A instructionAPI/ISA_ps/ubfx_ubfm
A instructionAPI/ISA_ps/ucvtf_advsimd_fix
A instructionAPI/ISA_ps/ucvtf_advsimd_int
A instructionAPI/ISA_ps/ucvtf_float_fix
A instructionAPI/ISA_ps/ucvtf_float_int
A instructionAPI/ISA_ps/udiv
A instructionAPI/ISA_ps/uhadd_advsimd
A instructionAPI/ISA_ps/uhsub_advsimd
A instructionAPI/ISA_ps/umaddl
A instructionAPI/ISA_ps/umax_advsimd
A instructionAPI/ISA_ps/umaxp_advsimd
A instructionAPI/ISA_ps/umaxv_advsimd
A instructionAPI/ISA_ps/umin_advsimd
A instructionAPI/ISA_ps/uminp_advsimd
A instructionAPI/ISA_ps/uminv_advsimd
A instructionAPI/ISA_ps/umlal_advsimd_elt
A instructionAPI/ISA_ps/umlal_advsimd_vec
A instructionAPI/ISA_ps/umlsl_advsimd_elt
A instructionAPI/ISA_ps/umlsl_advsimd_vec
A instructionAPI/ISA_ps/umnegl_umsubl
A instructionAPI/ISA_ps/umov_advsimd
A instructionAPI/ISA_ps/umsubl
A instructionAPI/ISA_ps/umulh
A instructionAPI/ISA_ps/umull_advsimd_elt
A instructionAPI/ISA_ps/umull_advsimd_vec
A instructionAPI/ISA_ps/umull_umaddl
A instructionAPI/ISA_ps/uqadd_advsimd
A instructionAPI/ISA_ps/uqrshl_advsimd
A instructionAPI/ISA_ps/uqrshrn_advsimd
A instructionAPI/ISA_ps/uqshl_advsimd_imm
A instructionAPI/ISA_ps/uqshl_advsimd_reg
A instructionAPI/ISA_ps/uqshrn_advsimd
A instructionAPI/ISA_ps/uqsub_advsimd
A instructionAPI/ISA_ps/uqxtn_advsimd
A instructionAPI/ISA_ps/urecpe_advsimd
A instructionAPI/ISA_ps/urhadd_advsimd
A instructionAPI/ISA_ps/urshl_advsimd
A instructionAPI/ISA_ps/urshr_advsimd
A instructionAPI/ISA_ps/ursqrte_advsimd
A instructionAPI/ISA_ps/ursra_advsimd
A instructionAPI/ISA_ps/ushl_advsimd
A instructionAPI/ISA_ps/ushll_advsimd
A instructionAPI/ISA_ps/ushr_advsimd
A instructionAPI/ISA_ps/usqadd_advsimd
A instructionAPI/ISA_ps/usra_advsimd
A instructionAPI/ISA_ps/usubl_advsimd
A instructionAPI/ISA_ps/usubw_advsimd
A instructionAPI/ISA_ps/uxtb_ubfm
A instructionAPI/ISA_ps/uxth_ubfm
A instructionAPI/ISA_ps/uxtl_ushll_advsimd
A instructionAPI/ISA_ps/uzp1_advsimd
A instructionAPI/ISA_ps/uzp2_advsimd
A instructionAPI/ISA_ps/wfe_hint
A instructionAPI/ISA_ps/wfi_hint
A instructionAPI/ISA_ps/xtn_advsimd
A instructionAPI/ISA_ps/yield_hint
A instructionAPI/ISA_ps/zip1_advsimd
A instructionAPI/ISA_ps/zip2_advsimd
A instructionAPI/aarch64_pseudocode_extractor.py
A instructionAPI/h/ArchSpecificFormatters.h
M instructionAPI/h/BinaryFunction.h
M instructionAPI/h/Dereference.h
M instructionAPI/h/Expression.h
M instructionAPI/h/Immediate.h
M instructionAPI/h/Instruction.h
M instructionAPI/h/InstructionAST.h
M instructionAPI/h/Operand.h
M instructionAPI/h/Register.h
M instructionAPI/h/Result.h
M instructionAPI/h/Visitor.h
A instructionAPI/src/ArchSpecificFormatters.C
M instructionAPI/src/Immediate.C
M instructionAPI/src/Instruction.C
M instructionAPI/src/InstructionDecoder-aarch64.C
M instructionAPI/src/InstructionDecoder-aarch64.h
M instructionAPI/src/InstructionDecoder-power.C
M instructionAPI/src/InstructionDecoder-power.h
M instructionAPI/src/InstructionDecoder-x86.C
M instructionAPI/src/InstructionDecoder-x86.h
M instructionAPI/src/Operand.C
M instructionAPI/src/Register.C
M instructionAPI/src/aarch64_opcode_tables.C
M instructionAPI/src/power_opcode_tables.C
M parseAPI/CMakeLists.txt
M parseAPI/h/CodeObject.h
M parseAPI/h/CodeSource.h
M parseAPI/src/Block.C
M parseAPI/src/BoundFactCalculator.C
M parseAPI/src/BoundFactData.C
M parseAPI/src/CodeObject.C
M parseAPI/src/CodeSource.C
M parseAPI/src/IA_IAPI.C
M parseAPI/src/IA_IAPI.h
M parseAPI/src/IA_InstrucIter.C
M parseAPI/src/IA_aarch64.C
A parseAPI/src/IA_aarch64.h
R parseAPI/src/IA_aarch64Details.C
R parseAPI/src/IA_aarch64Details.h
R parseAPI/src/IA_platformDetails.h
R parseAPI/src/IA_platformDetailsFactory.C
M parseAPI/src/IA_power.C
M parseAPI/src/IA_power.h
R parseAPI/src/IA_powerDetails.C
R parseAPI/src/IA_powerDetails.h
M parseAPI/src/IA_x86.C
A parseAPI/src/IA_x86.h
R parseAPI/src/IA_x86Details.C
R parseAPI/src/IA_x86Details.h
M parseAPI/src/IndirectASTVisitor.C
M parseAPI/src/IndirectASTVisitor.h
M parseAPI/src/IndirectAnalyzer.C
M parseAPI/src/IndirectAnalyzer.h
R parseAPI/src/InstructionSource-aarch64.C
R parseAPI/src/InstructionSource-power.C
R parseAPI/src/InstructionSource-x86.C
M parseAPI/src/JumpTableFormatPred.C
M parseAPI/src/JumpTableFormatPred.h
M parseAPI/src/JumpTableIndexPred.C
M parseAPI/src/JumpTableIndexPred.h
M parseAPI/src/ParseData.C
M parseAPI/src/ParseData.h
M parseAPI/src/Parser-speculative.C
M parseAPI/src/Parser.C
M parseAPI/src/Parser.h
M parseAPI/src/ParserDetails.C
M parseAPI/src/ParserDetails.h
M parseAPI/src/SymbolicExpression.C
M parseAPI/src/SymbolicExpression.h
M parseAPI/src/SymtabCodeSource.C
M symtabAPI/h/Symtab.h
M symtabAPI/src/Object-elf.C
M symtabAPI/src/emitElf.C
Log Message:
-----------
Merge checkpoint
Commit: 9157d8a0595b355d8604d61a40a40dac577df7e2
https://github.com/dyninst/dyninst/commit/9157d8a0595b355d8604d61a40a40dac577df7e2
Author: Bill Williams <bill@xxxxxxxxxxx>
Date: 2017-09-26 (Tue, 26 Sep 2017)
Changed paths:
M CMakeLists.txt
M cmake/packages.cmake
M common/h/IBSTree-fast.h
M common/h/IBSTree.h
M common/src/arch-x86.C
M common/src/singleton_object_pool.h
M dataflowAPI/h/Absloc.h
M dataflowAPI/h/AbslocInterface.h
M dataflowAPI/h/SymEval.h
M dataflowAPI/h/liveness.h
M dataflowAPI/h/slicing.h
M dataflowAPI/h/stackanalysis.h
M dataflowAPI/rose/semantics/SymEvalSemantics.h
M dataflowAPI/src/Absloc.C
M dataflowAPI/src/AbslocInterface.C
M dataflowAPI/src/RoseInsnFactory.C
M dataflowAPI/src/RoseInsnFactory.h
M dataflowAPI/src/SymEval.C
M dataflowAPI/src/SymEvalPolicy.C
M dataflowAPI/src/SymEvalPolicy.h
M dataflowAPI/src/liveness.C
M dataflowAPI/src/slicing.C
M dataflowAPI/src/stackanalysis.C
M dyninstAPI/h/BPatch_basicBlock.h
M dyninstAPI/h/BPatch_parRegion.h
M dyninstAPI/h/BPatch_point.h
M dyninstAPI/src/BPatch_basicBlock.C
M dyninstAPI/src/BPatch_flowGraph.C
M dyninstAPI/src/BPatch_memoryAccessAdapter.C
M dyninstAPI/src/BPatch_memoryAccessAdapter.h
M dyninstAPI/src/BPatch_parRegion.C
M dyninstAPI/src/BPatch_point.C
M dyninstAPI/src/Relocation/CFG/RelocBlock.C
M dyninstAPI/src/Relocation/CodeBuffer.C
M dyninstAPI/src/Relocation/DynPointMaker.C
M dyninstAPI/src/Relocation/DynPointMaker.h
M dyninstAPI/src/Relocation/Transformers/Instrumenter.C
M dyninstAPI/src/Relocation/Transformers/Movement-adhoc.C
M dyninstAPI/src/Relocation/Transformers/Movement-adhoc.h
M dyninstAPI/src/Relocation/Transformers/Movement-analysis.C
M dyninstAPI/src/Relocation/Transformers/Movement-analysis.h
M dyninstAPI/src/Relocation/Widgets/CFWidget-x86.C
M dyninstAPI/src/Relocation/Widgets/CFWidget.C
M dyninstAPI/src/Relocation/Widgets/CFWidget.h
M dyninstAPI/src/Relocation/Widgets/InsnWidget.C
M dyninstAPI/src/Relocation/Widgets/InsnWidget.h
M dyninstAPI/src/Relocation/Widgets/PCWidget.C
M dyninstAPI/src/Relocation/Widgets/PCWidget.h
M dyninstAPI/src/Relocation/Widgets/RelDataWidget.C
M dyninstAPI/src/Relocation/Widgets/RelDataWidget.h
M dyninstAPI/src/Relocation/Widgets/StackModWidget.C
M dyninstAPI/src/Relocation/Widgets/StackModWidget.h
M dyninstAPI/src/Relocation/Widgets/Widget.h
M dyninstAPI/src/StackMod/StackAccess.C
M dyninstAPI/src/StackMod/StackAccess.h
M dyninstAPI/src/StackMod/StackModChecker.C
M dyninstAPI/src/StackMod/StackModChecker.h
M dyninstAPI/src/addressSpace.C
M dyninstAPI/src/addressSpace.h
M dyninstAPI/src/ast.C
M dyninstAPI/src/codegen-x86.C
M dyninstAPI/src/codegen.C
M dyninstAPI/src/frameChecker.C
M dyninstAPI/src/frameChecker.h
M dyninstAPI/src/function.C
M dyninstAPI/src/function.h
M dyninstAPI/src/hybridInstrumentation.C
M dyninstAPI/src/hybridOverwrites.C
M dyninstAPI/src/image.C
M dyninstAPI/src/inst-x86.C
M dyninstAPI/src/instPoint.C
M dyninstAPI/src/instPoint.h
M dyninstAPI/src/mapped_object.C
M dyninstAPI/src/parse-cfg.C
M dyninstAPI/src/parse-cfg.h
M dyninstAPI/src/parse-x86.C
M instructionAPI/h/ArchSpecificFormatters.h
M instructionAPI/h/BinaryFunction.h
M instructionAPI/h/Dereference.h
M instructionAPI/h/Expression.h
M instructionAPI/h/Immediate.h
M instructionAPI/h/Instruction.h
M instructionAPI/h/InstructionAST.h
M instructionAPI/h/InstructionDecoder.h
M instructionAPI/h/Operand.h
R instructionAPI/h/Operation.h
A instructionAPI/h/Operation_impl.h
M instructionAPI/h/Register.h
M instructionAPI/src/ArchSpecificFormatters.C
M instructionAPI/src/Immediate.C
M instructionAPI/src/Instruction.C
M instructionAPI/src/InstructionDecoder-aarch64.C
M instructionAPI/src/InstructionDecoder-aarch64.h
M instructionAPI/src/InstructionDecoder-power.C
M instructionAPI/src/InstructionDecoder-power.h
M instructionAPI/src/InstructionDecoder-x86.C
M instructionAPI/src/InstructionDecoder-x86.h
M instructionAPI/src/InstructionDecoder.C
M instructionAPI/src/InstructionDecoderImpl.C
M instructionAPI/src/InstructionDecoderImpl.h
M instructionAPI/src/Operand.C
M instructionAPI/src/Operation.C
M instructionAPI/src/Register.C
M parseAPI/CMakeLists.txt
M parseAPI/h/CFG.h
M parseAPI/h/CodeSource.h
M parseAPI/h/InstructionAdapter.h
M parseAPI/h/Location.h
M parseAPI/src/Block.C
M parseAPI/src/BoundFactCalculator.C
M parseAPI/src/BoundFactData.C
M parseAPI/src/BoundFactData.h
M parseAPI/src/CFGFactory.C
M parseAPI/src/CFGModifier.C
M parseAPI/src/CodeObject.C
M parseAPI/src/Function.C
M parseAPI/src/IA_IAPI.C
M parseAPI/src/IA_IAPI.h
M parseAPI/src/IA_aarch64.C
M parseAPI/src/IA_aarch64.h
M parseAPI/src/IA_power.C
M parseAPI/src/IA_power.h
M parseAPI/src/IA_x86.C
M parseAPI/src/IA_x86.h
M parseAPI/src/IndirectAnalyzer.C
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/ParserDetails.h
M parseAPI/src/ProbabilisticParser.C
M parseAPI/src/SymbolicExpression.C
M patchAPI/h/PatchCFG.h
M patchAPI/h/Point.h
M patchAPI/src/PatchBlock.C
M patchAPI/src/PatchFunction.C
M patchAPI/src/PatchMgr.C
M patchAPI/src/PatchModifier.C
M patchAPI/src/Point.C
M patchAPI/src/PointMaker.C
M stackwalk/src/callchecker-IAPI.C
Log Message:
-----------
Now getting actual parallelism:
* Instructions by value, not by shared pointer
* Blocks updated in region_data during finalize, not during parse
Commit: a8def5c64b5ae87c068dbc6a915377a5127aac90
https://github.com/dyninst/dyninst/commit/a8def5c64b5ae87c068dbc6a915377a5127aac90
Author: Bill Williams <bill@xxxxxxxxxxx>
Date: 2017-09-27 (Wed, 27 Sep 2017)
Changed paths:
M common/src/linuxKludges.C
M dyninstAPI/CMakeLists.txt
M dyninstAPI/src/BPatch.C
M dyninstAPI/src/BPatch_snippet.C
M dyninstAPI/src/BPatch_type.C
M symtabAPI/CMakeLists.txt
M symtabAPI/h/Collections.h
M symtabAPI/h/Type.h
M symtabAPI/src/Collections.C
M symtabAPI/src/Type-mem.h
M symtabAPI/src/Type.C
M symtabAPI/src/dwarfWalker.C
M symtabAPI/src/parseStab.C
Log Message:
-----------
Some initial DWARF parallelism
Commit: 9f77aa4f79cb2e19b9612adb49e6aae9cd769b58
https://github.com/dyninst/dyninst/commit/9f77aa4f79cb2e19b9612adb49e6aae9cd769b58
Author: Bill Williams <bill@xxxxxxxxxxx>
Date: 2017-09-27 (Wed, 27 Sep 2017)
Log Message:
-----------
Merge branch 'master' into new-parallel-parsing
# Conflicts:
# dyninstAPI/src/Relocation/Transformers/Movement-analysis.C
Commit: 3cd48c5c21cdeb3e0331ec04eaa4b51a4cf17b13
https://github.com/dyninst/dyninst/commit/3cd48c5c21cdeb3e0331ec04eaa4b51a4cf17b13
Author: Bill Williams <bill@xxxxxxxxxxx>
Date: 2017-09-27 (Wed, 27 Sep 2017)
Changed paths:
M .gitignore
M CMakeLists.txt
M INSTALL
M cmake/Modules/FindLibDwarf.cmake
M cmake/packages.cmake
M common/src/arch-x86.C
M dataflowAPI/rose/semantics/MemoryMap.C
M dataflowAPI/rose/util/Message.C
M dwarf/CMakeLists.txt
M dwarf/h/dwarfExprParser.h
M dwarf/h/dwarfFrameParser.h
M dwarf/h/dwarfHandle.h
M dwarf/h/dwarfResult.h
M dwarf/src/dwarfExprParser.C
M dwarf/src/dwarfFrameParser.C
M dwarf/src/dwarfHandle.C
M dwarf/src/dwarfResult.C
M dynC_API/src/dynC.tab.C
M dyninstAPI/h/BPatch.h
M dyninstAPI/h/BPatch_type.h
M dyninstAPI/src/BPatch_function.C
M dyninstAPI/src/Relocation/Transformers/Movement-analysis.C
M dyninstAPI/src/dynProcess.C
M dyninstAPI/src/emit-x86.C
M dyninstAPI/src/image.C
M dyninstAPI/src/pcEventHandler.C
M dyninstAPI/src/pcEventMuxer.C
M instructionAPI/src/Instruction.C
M parseAPI/src/CodeObject.C
M parseAPI/src/IndirectASTVisitor.C
M parseAPI/src/SymbolicExpression.C
M patchAPI/src/PatchMgr.C
M proccontrol/src/process.C
M stackwalk/h/walker.h
M stackwalk/src/dbginfo-stepper.C
M stackwalk/src/dbgstepper-impl.h
M symtabAPI/doc/A-Appendix.tex
M symtabAPI/h/Module.h
M symtabAPI/h/Symtab.h
M symtabAPI/src/Function.C
M symtabAPI/src/LineInformation.C
M symtabAPI/src/Object-elf.C
M symtabAPI/src/Object-elf.h
M symtabAPI/src/Symtab.C
M symtabAPI/src/Variable.C
M symtabAPI/src/dwarfWalker.C
M symtabAPI/src/dwarfWalker.h
M symtabAPI/src/emitElf.C
M symtabAPI/src/parseDwarf.C
Log Message:
-----------
Merge branch 'master' into new-parallel-parsing
# Conflicts:
# dyninstAPI/src/Relocation/Transformers/Movement-analysis.C
# symtabAPI/src/LineInformation.C
# symtabAPI/src/dwarfWalker.C
Commit: aaa5e321c9393f8a5c6419632bc08891eab6135d
https://github.com/dyninst/dyninst/commit/aaa5e321c9393f8a5c6419632bc08891eab6135d
Author: Bill Williams <bill@xxxxxxxxxxx>
Date: 2017-10-10 (Tue, 10 Oct 2017)
Changed paths:
M cmake/packages.cmake
M common/src/linuxKludges.C
M common/src/pathName.C
M common/src/string-regex.C
M instructionAPI/src/InstructionDecoder-x86.C
M symtabAPI/h/Collections.h
M symtabAPI/h/StringTable.h
M symtabAPI/h/Symtab.h
M symtabAPI/src/Collections.C
M symtabAPI/src/Function.C
M symtabAPI/src/LineInformation.C
M symtabAPI/src/Symtab-edit.C
M symtabAPI/src/Symtab-lookup.C
M symtabAPI/src/dwarfWalker.C
M symtabAPI/src/dwarfWalker.h
Log Message:
-----------
Backed out DWARF parallelism. Fixed memory leaks and DWARF bugs.
Commit: 9dbc40038ca2e4bbcf35abb29017fae43e46f35c
https://github.com/dyninst/dyninst/commit/9dbc40038ca2e4bbcf35abb29017fae43e46f35c
Author: Bill Williams <bill@xxxxxxxxxxx>
Date: 2017-10-16 (Mon, 16 Oct 2017)
Changed paths:
M common/src/dthread.C
M common/src/singleton_object_pool.h
M parseAPI/src/CFGFactory.C
M symtabAPI/h/Module.h
M symtabAPI/src/Type-mem.h
M symtabAPI/src/Type.C
Log Message:
-----------
Remove cilkscreen dependencies.
Commit: 09749669640fb2dd3396f4f59c4ceba5910f3f1a
https://github.com/dyninst/dyninst/commit/09749669640fb2dd3396f4f59c4ceba5910f3f1a
Author: Bill Williams <bill@xxxxxxxxxxx>
Date: 2017-10-17 (Tue, 17 Oct 2017)
Changed paths:
M common/src/dthread.h
Log Message:
-----------
Fix stray cilktools dependency
Commit: 21fca9d1dad945a3d793038576cede1da5d442b1
https://github.com/dyninst/dyninst/commit/21fca9d1dad945a3d793038576cede1da5d442b1
Author: Bill Williams <bill@xxxxxxxxxxx>
Date: 2017-10-17 (Tue, 17 Oct 2017)
Changed paths:
M symtabAPI/src/Type-mem.h
M symtabAPI/src/dwarfWalker.C
Log Message:
-----------
gcc 5.4.0 build fixes
Commit: 06bb550c79bc6f60f06acb21672cb4ae1d47cfe2
https://github.com/dyninst/dyninst/commit/06bb550c79bc6f60f06acb21672cb4ae1d47cfe2
Author: Bill Williams <wwilliam47@xxxxxxxxx>
Date: 2017-10-17 (Tue, 17 Oct 2017)
Changed paths:
M symtabAPI/src/Type-mem.h
Log Message:
-----------
Get the right header for make_pair
Commit: fdaf22d4a172abbc45c34bdc271770a0c6029637
https://github.com/dyninst/dyninst/commit/fdaf22d4a172abbc45c34bdc271770a0c6029637
Author: Bill Williams <wwilliam47@xxxxxxxxx>
Date: 2017-10-17 (Tue, 17 Oct 2017)
Changed paths:
M CMakeLists.txt
Log Message:
-----------
Remove hard-coded development dependencies
Requires TBB includes/libs to be in CMake search path; this is intended to be used with a spackfile or other preset development environment.
Commit: a9c721bba6c1e8fe07f997989212c3e99ad5fc0f
https://github.com/dyninst/dyninst/commit/a9c721bba6c1e8fe07f997989212c3e99ad5fc0f
Author: Bill Williams <wwilliam47@xxxxxxxxx>
Date: 2017-10-17 (Tue, 17 Oct 2017)
Changed paths:
M common/CMakeLists.txt
Log Message:
-----------
Fix common link deps
Commit: 383a3df0fa3db65f8b37b19c43c8518bd4f5abf8
https://github.com/dyninst/dyninst/commit/383a3df0fa3db65f8b37b19c43c8518bd4f5abf8
Author: Bill Williams <bill@xxxxxxxxxxx>
Date: 2017-10-18 (Wed, 18 Oct 2017)
Changed paths:
M cmake/packages.cmake
M dynC_API/CMakeLists.txt
M parseAPI/src/Parser.C
M parseThat/CMakeLists.txt
Log Message:
-----------
builds clean under icc
Commit: f1e332e4fd23e8ed404e703b8db8a5ca8fb0d020
https://github.com/dyninst/dyninst/commit/f1e332e4fd23e8ed404e703b8db8a5ca8fb0d020
Author: Bill Williams <bill@xxxxxxxxxxx>
Date: 2017-10-20 (Fri, 20 Oct 2017)
Changed paths:
A .gitmodules
M CMakeLists.txt
A cmake/Modules/FindTBB
A cmake/Modules/FindTBB.cmake
M cmake/packages.cmake
M common/CMakeLists.txt
M parseAPI/CMakeLists.txt
M parseAPI/src/Parser.C
M symtabAPI/src/Object-elf.C
M symtabAPI/src/Object-elf.h
Log Message:
-----------
Builds cleanly under icc17; TBB found properly via CMake.
Commit: 363e530f5c01c7648cde8b90b624c101653d5fd0
https://github.com/dyninst/dyninst/commit/363e530f5c01c7648cde8b90b624c101653d5fd0
Author: Bill Williams <bill@xxxxxxxxxxx>
Date: 2017-10-30 (Mon, 30 Oct 2017)
Changed paths:
M CMakeLists.txt
Log Message:
-----------
Make RTlib CMake output a bit more verbose
Commit: e1a4d7417e0af3a350f9470555bc520d5378a228
https://github.com/dyninst/dyninst/commit/e1a4d7417e0af3a350f9470555bc520d5378a228
Author: Bill Williams <bill@xxxxxxxxxxx>
Date: 2017-11-01 (Wed, 01 Nov 2017)
Changed paths:
M common/src/arch-x86.C
M parseAPI/src/Parser.C
Log Message:
-----------
Ensure we don't duplicate frames in the worklist.
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: bdb2cbdc8da94151c2670e6b81066005f98b8a0a
https://github.com/dyninst/dyninst/commit/bdb2cbdc8da94151c2670e6b81066005f98b8a0a
Author: Bill Williams <bill@xxxxxxxxxxx>
Date: 2017-11-08 (Wed, 08 Nov 2017)
Changed paths:
M parseAPI/CMakeLists.txt
M parseAPI/src/Parser.C
M parseAPI/src/Parser.h
M parseAPI/src/ParserDetails.C
Log Message:
-----------
More RAJA implementation:
1) Propagate package search usefully and make the infrastructure settable in CMake
2) Refactor from outer loop to inner recursion
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: 792f7f120d3dceb36b3080ec1fd9f527b31784d1
https://github.com/dyninst/dyninst/commit/792f7f120d3dceb36b3080ec1fd9f527b31784d1
Author: Bill Williams <bill@xxxxxxxxxxx>
Date: 2017-11-22 (Wed, 22 Nov 2017)
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
Log Message:
-----------
Move to tbb::scalable_alloc instead of boost::pool for small object allocation in InstructionAPI.
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: b56f5d969e529581465e68632589f9f1027b8ea7
https://github.com/dyninst/dyninst/commit/b56f5d969e529581465e68632589f9f1027b8ea7
Author: Bill Williams <bill@xxxxxxxxxxx>
Date: 2017-11-27 (Mon, 27 Nov 2017)
Changed paths:
M parseAPI/CMakeLists.txt
Log Message:
-----------
Amend last commit: missed CMakeLists.txt.
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: 62ff5b2ff326e1f32b0e0946da5a7303519a47bb
https://github.com/dyninst/dyninst/commit/62ff5b2ff326e1f32b0e0946da5a7303519a47bb
Author: Bill Williams <bill@xxxxxxxxxxx>
Date: 2017-11-29 (Wed, 29 Nov 2017)
Changed paths:
M parseAPI/CMakeLists.txt
Log Message:
-----------
Pass inputs to RAJA CMake, not internals.
Commit: 9dd225e0c5a8455fed702ab3f261b7ccd0c32500
https://github.com/dyninst/dyninst/commit/9dd225e0c5a8455fed702ab3f261b7ccd0c32500
Author: Bill Williams <bill@xxxxxxxxxxx>
Date: 2017-11-29 (Wed, 29 Nov 2017)
Changed paths:
M parseAPI/src/ParseData.h
M parseAPI/src/Parser.C
M parseAPI/src/Parser.h
Log Message:
-----------
Ensure frames can't be parsed on two threads simultaneously.
Commit: de4c0b858cb52d7d7e3bafcefd56ecbee687ef61
https://github.com/dyninst/dyninst/commit/de4c0b858cb52d7d7e3bafcefd56ecbee687ef61
Author: Bill Williams <bill@xxxxxxxxxxx>
Date: 2017-11-29 (Wed, 29 Nov 2017)
Changed paths:
M common/h/dyntypes.h
M common/src/addrtranslate-sysv.C
M dyninstAPI/src/dynProcess.C
M symtabAPI/src/Object-elf.C
M symtabAPI/src/Variable.C
M symtabAPI/src/dwarfWalker.C
Log Message:
-----------
Merge branch 'master' into new-parallel-parsing
# Conflicts:
# symtabAPI/src/dwarfWalker.C
Commit: 6fb4f1ea3a1c124ae98b236cb15ecfe0e88e21fb
https://github.com/dyninst/dyninst/commit/6fb4f1ea3a1c124ae98b236cb15ecfe0e88e21fb
Author: Bill Williams <bill@xxxxxxxxxxx>
Date: 2017-11-30 (Thu, 30 Nov 2017)
Changed paths:
M symtabAPI/src/dwarfWalker.C
Log Message:
-----------
Fixup
Commit: 3a0bd012c23f2c5d52f117b3dc0d8fc8931dee12
https://github.com/dyninst/dyninst/commit/3a0bd012c23f2c5d52f117b3dc0d8fc8931dee12
Author: Bill Williams <bill@xxxxxxxxxxx>
Date: 2017-11-30 (Thu, 30 Nov 2017)
Changed paths:
M cmake/packages.cmake
Log Message:
-----------
Add auto-download and build for TBB from official github repo.
Commit: 6a23d9b0660932462414976d65a1002f1e170751
https://github.com/dyninst/dyninst/commit/6a23d9b0660932462414976d65a1002f1e170751
Author: Bill Williams <bill@xxxxxxxxxxx>
Date: 2017-11-30 (Thu, 30 Nov 2017)
Changed paths:
M cmake/packages.cmake
Log Message:
-----------
Fix target name
Commit: d53986b13f9227358376c0f31b58a239cf016a1e
https://github.com/dyninst/dyninst/commit/d53986b13f9227358376c0f31b58a239cf016a1e
Author: Bill Williams <bill@xxxxxxxxxxx>
Date: 2017-11-30 (Thu, 30 Nov 2017)
Changed paths:
M parseAPI/CMakeLists.txt
Log Message:
-----------
Don't require OpenMP
Commit: e999ec14a6a87593497e756770574cdc975d47c6
https://github.com/dyninst/dyninst/commit/e999ec14a6a87593497e756770574cdc975d47c6
Author: Bill Williams <bill@xxxxxxxxxxx>
Date: 2017-12-06 (Wed, 06 Dec 2017)
Changed paths:
M instructionAPI/src/Operation.C
Log Message:
-----------
Go from read/write locks to concurrent hash map for auxiliary r/w info
Commit: ed73e060511c1b6b1dbec1af31ae96f09ab784fd
https://github.com/dyninst/dyninst/commit/ed73e060511c1b6b1dbec1af31ae96f09ab784fd
Author: Bill Williams <bill@xxxxxxxxxxx>
Date: 2017-12-14 (Thu, 14 Dec 2017)
Changed paths:
M parseAPI/CMakeLists.txt
M parseAPI/src/Parser.C
Log Message:
-----------
Remove RAJA for pure TBB implementation
Commit: ad46b7608fbfc4052c9f539bed5f9488dba61f86
https://github.com/dyninst/dyninst/commit/ad46b7608fbfc4052c9f539bed5f9488dba61f86
Author: Bill Williams <bill@xxxxxxxxxxx>
Date: 2017-12-15 (Fri, 15 Dec 2017)
Changed paths:
M parseAPI/CMakeLists.txt
Log Message:
-----------
Clean up warnings and dead OpenMP checks.
Commit: cf1bc0d5c14cf0e67392e32eaff53684f51beaff
https://github.com/dyninst/dyninst/commit/cf1bc0d5c14cf0e67392e32eaff53684f51beaff
Author: Bill Williams <bill@xxxxxxxxxxx>
Date: 2017-12-15 (Fri, 15 Dec 2017)
Changed paths:
M cmake/options.cmake
Log Message:
-----------
Promote cotire usage to an option.
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
Commit: e8c29f1f7e4939537dddd185e461560980cb6eca
https://github.com/dyninst/dyninst/commit/e8c29f1f7e4939537dddd185e461560980cb6eca
Author: Bill Williams <bill@xxxxxxxxxxx>
Date: 2018-03-06 (Tue, 06 Mar 2018)
Changed paths:
M elf/src/Elf_X.C
M symtabAPI/src/Object-elf.C
Log Message:
-----------
Symtab fixes for ARM
Commit: d7ffeaf3e0365ff384a9d158048f08d462a685ec
https://github.com/dyninst/dyninst/commit/d7ffeaf3e0365ff384a9d158048f08d462a685ec
Author: Bill Williams <bill@xxxxxxxxxxx>
Date: 2018-03-13 (Tue, 13 Mar 2018)
Changed paths:
M dyninstAPI/src/Relocation/CFG/RelocBlock.C
M dyninstAPI/src/parse-cfg.h
M dyninstAPI/src/parse-x86.C
M parseAPI/h/CFG.h
M parseAPI/h/CFGFactory.h
M parseAPI/src/Block.C
M parseAPI/src/CFGFactory.C
M parseAPI/src/CFGModifier.C
M parseAPI/src/CodeObject.C
M parseAPI/src/Function.C
M parseAPI/src/ParseCallback.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/ProbabilisticParser.C
M patchAPI/src/ParseCallback.C
Log Message:
-----------
ParseAPI fixes: test1_1 create now passes
Commit: 1c068645ed65b7686d3f4fe0268edb30a3f9a2fc
https://github.com/dyninst/dyninst/commit/1c068645ed65b7686d3f4fe0268edb30a3f9a2fc
Author: Bill Williams <bill@xxxxxxxxxxx>
Date: 2018-03-13 (Tue, 13 Mar 2018)
Changed paths:
M CMakeLists.txt
Log Message:
-----------
Fix for libelf install glob
Commit: d22059555da650b846935b7eb92341b4923d0a4a
https://github.com/dyninst/dyninst/commit/d22059555da650b846935b7eb92341b4923d0a4a
Author: Bill Williams <bill@xxxxxxxxxxx>
Date: 2018-03-13 (Tue, 13 Mar 2018)
Changed paths:
M symtabAPI/src/Object-elf.C
Log Message:
-----------
Fix unsafe iteration
Commit: d2c8c4749c201ab1b145a0e4b0f2d883b13e6592
https://github.com/dyninst/dyninst/commit/d2c8c4749c201ab1b145a0e4b0f2d883b13e6592
Author: Bill Williams <bill@xxxxxxxxxxx>
Date: 2018-03-13 (Tue, 13 Mar 2018)
Changed paths:
M stackwalk/src/linux-aarch64-swk.C
Log Message:
-----------
Disable testing code
Commit: a0f6a2054edbdd7cbaded2871c956b94b550e4de
https://github.com/dyninst/dyninst/commit/a0f6a2054edbdd7cbaded2871c956b94b550e4de
Author: Bill Williams <bill@xxxxxxxxxxx>
Date: 2018-03-19 (Mon, 19 Mar 2018)
Changed paths:
M stackwalk/src/framestepper.C
M stackwalk/src/linux-aarch64-swk.C
Log Message:
-----------
SW cleanup
Commit: 7028657609bfa4646c58266d330019e97f9593c2
https://github.com/dyninst/dyninst/commit/7028657609bfa4646c58266d330019e97f9593c2
Author: Bill Williams <bill@xxxxxxxxxxx>
Date: 2018-04-03 (Tue, 03 Apr 2018)
Changed paths:
M CMakeLists.txt
M cmake/shared.cmake
A examples/CMakeLists.txt
Log Message:
-----------
Merge branch 'master' into new-parallel-parsing
Commit: 877cfc58fea07acbe4d44e561628739cff0abe6c
https://github.com/dyninst/dyninst/commit/877cfc58fea07acbe4d44e561628739cff0abe6c
Author: Bill Williams <bill@xxxxxxxxxxx>
Date: 2018-04-05 (Thu, 05 Apr 2018)
Changed paths:
M dataflowAPI/src/liveness.C
M dyninstAPI/src/Parsing.C
M dyninstAPI/src/Relocation/Transformers/Movement-adhoc.C
M parseAPI/src/ParseData.C
M parseAPI/src/ParseData.h
M symtabAPI/src/Object-elf.C
M symtabAPI/src/dwarfWalker.C
M symtabAPI/src/dwarfWalker.h
Log Message:
-----------
Fixes for test crashes
Commit: 5d1ee6d5d654a58c5fdf0945de33590d811d186f
https://github.com/dyninst/dyninst/commit/5d1ee6d5d654a58c5fdf0945de33590d811d186f
Author: Bill Williams <bill@xxxxxxxxxxx>
Date: 2018-04-16 (Mon, 16 Apr 2018)
Changed paths:
M common/h/dyn_regs.h
M common/h/entryIDs.h
M common/src/dyn_regs.C
M dataflowAPI/rose/semantics/DispatcherPowerpc.C
M dataflowAPI/src/liveness.C
M dwarf/src/dwarfFrameParser.C
M dwarf/src/dwarfHandle.C
M dyninstAPI/src/Relocation/Transformers/Movement-analysis.C
M dyninstAPI/src/syscallNotification.C
M elf/h/Elf_X.h
M elf/src/Elf_X.C
M examples/CMakeLists.txt
A examples/codeCoverage/Makefile.afs
A examples/codeCoverage/README
A examples/codeCoverage/README.staticdist
A examples/codeCoverage/codeCoverage.C
A examples/codeCoverage/libInst.C
A examples/codeCoverage/libInst.h
A examples/codeCoverage/libtestcc.c
A examples/codeCoverage/libtestcc.h
A examples/codeCoverage/package.bash
A examples/codeCoverage/testcc.c
A examples/unstrip/Makefile.afs
A examples/unstrip/README
A examples/unstrip/callback.C
A examples/unstrip/callback.h
A examples/unstrip/database.C
A examples/unstrip/database.h
A examples/unstrip/ddb.db
A examples/unstrip/fingerprint.C
A examples/unstrip/fingerprint.h
A examples/unstrip/foo.c
A examples/unstrip/foo.sh
A examples/unstrip/generate-learn-binary.bash
A examples/unstrip/package.bash
A examples/unstrip/params.db
A examples/unstrip/predicates.h
A examples/unstrip/semanticDescriptor.C
A examples/unstrip/semanticDescriptor.h
A examples/unstrip/test.c
A examples/unstrip/types.C
A examples/unstrip/types.h
A examples/unstrip/unistd.db
A examples/unstrip/unstrip.C
A examples/unstrip/util.C
A examples/unstrip/util.h
M instructionAPI/src/InstructionDecoder-power.C
M instructionAPI/src/InstructionDecoder-power.h
M instructionAPI/src/power_opcode_tables.C
M parseAPI/src/Block.C
M parseAPI/src/Function.C
M parseAPI/src/LoopAnalyzer.C
M parseAPI/src/Parser.C
M parseAPI/src/SymbolicExpression.C
M parseAPI/src/SymtabCodeSource.C
M proccontrol/src/process.C
M symtabAPI/h/Module.h
M symtabAPI/src/Module.C
M symtabAPI/src/Object-elf.C
M symtabAPI/src/dwarfWalker.C
M symtabAPI/src/emitElf.C
M testsuite
Log Message:
-----------
Merge, fix test4_3, fix examples build
Commit: a362bea48a4ffc9ae14d470873161d6f38d26e30
https://github.com/dyninst/dyninst/commit/a362bea48a4ffc9ae14d470873161d6f38d26e30
Author: Bill Williams <bill@xxxxxxxxxxx>
Date: 2018-04-16 (Mon, 16 Apr 2018)
Changed paths:
M dyninstAPI/src/Relocation/Transformers/Movement-analysis.C
M dyninstAPI/src/Relocation/Widgets/CFWidget.C
M examples/CMakeLists.txt
M examples/unstrip/callback.C
M examples/unstrip/fingerprint.C
M examples/unstrip/types.h
M examples/unstrip/util.C
M examples/unstrip/util.h
M parseAPI/doc/example.cc
M parseAPI/src/Parser.C
M parseAPI/src/SymtabCodeSource.C
M stackwalk/src/linux-aarch64-swk.C
M stackwalk/src/linux-x86-swk.C
Log Message:
-----------
Merge, fix test4_3, fix examples build
Commit: 4a18865eec4b7a72edea7363a8d0d525ef6366d1
https://github.com/dyninst/dyninst/commit/4a18865eec4b7a72edea7363a8d0d525ef6366d1
Author: Xiaozhu Meng <xmeng@xxxxxxxxxxx>
Date: 2018-04-25 (Wed, 25 Apr 2018)
Changed paths:
M cmake/Modules/FindTBB.cmake
M cmake/packages.cmake
M common/src/arch-x86.C
M dyninstAPI/src/Relocation/Widgets/CFPatch.C
M dyninstAPI/src/Relocation/Widgets/CFWidget.C
M dyninstAPI/src/Relocation/Widgets/CFWidget.h
M examples/CMakeLists.txt
M instructionAPI/src/Instruction.C
M parseThat/CMakeLists.txt
Log Message:
-----------
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.
Commit: c4914b9d149c61b0405028d797b5653381a66b87
https://github.com/dyninst/dyninst/commit/c4914b9d149c61b0405028d797b5653381a66b87
Author: Xiaozhu Meng <xmeng@xxxxxxxxxxx>
Date: 2018-05-08 (Tue, 08 May 2018)
Changed paths:
M parseAPI/src/CodeSource.C
M parseAPI/src/Parser.C
M parseAPI/src/Parser.h
M parseAPI/src/ParserDetails.h
M testsuite
Log Message:
-----------
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
Commit: b85c7f75d4bb0f1a2191c53285718dde1bc7fa89
https://github.com/dyninst/dyninst/commit/b85c7f75d4bb0f1a2191c53285718dde1bc7fa89
Author: Xiaozhu Meng <xmeng@xxxxxxxxxxx>
Date: 2018-05-09 (Wed, 09 May 2018)
Changed paths:
M dyninstAPI/src/codegen-x86.C
Log Message:
-----------
Need to decode REX prefix when determining which bytes to change for
relocation
Commit: 8873ef0b4eb32b12a30e37f4f2db0f89252f47eb
https://github.com/dyninst/dyninst/commit/8873ef0b4eb32b12a30e37f4f2db0f89252f47eb
Author: Xiaozhu Meng <xmeng@xxxxxxxxxxx>
Date: 2018-05-09 (Wed, 09 May 2018)
Changed paths:
M parseAPI/src/ParseData.C
M parseAPI/src/ParseData.h
M parseAPI/src/Parser.C
Log Message:
-----------
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
Commit: 93cc790a61d2f8c91ba2c7a7d6b63695e7027daf
https://github.com/dyninst/dyninst/commit/93cc790a61d2f8c91ba2c7a7d6b63695e7027daf
Author: Xiaozhu Meng <xmeng@xxxxxxxxxxx>
Date: 2018-05-10 (Thu, 10 May 2018)
Changed paths:
M parseAPI/src/Parser.C
Log Message:
-----------
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
Commit: 654a50debd3523a7616a634668d860d00fbf1aa9
https://github.com/dyninst/dyninst/commit/654a50debd3523a7616a634668d860d00fbf1aa9
Author: Xiaozhu Meng <xmeng@xxxxxxxxxxx>
Date: 2018-05-15 (Tue, 15 May 2018)
Changed paths:
M dataflowAPI/h/AbslocInterface.h
M dataflowAPI/src/AbslocInterface.C
M parseAPI/src/IndirectAnalyzer.C
M parseAPI/src/JumpTableFormatPred.h
Log Message:
-----------
Should not just treat unbinded registers as 0 when convering
instructions to assignments
Commit: f8ee89d864a9246118960b5186790bbe21ba3427
https://github.com/dyninst/dyninst/commit/f8ee89d864a9246118960b5186790bbe21ba3427
Author: Xiaozhu Meng <xmeng@xxxxxxxxxxx>
Date: 2018-05-21 (Mon, 21 May 2018)
Changed paths:
M instructionAPI/h/Operation_impl.h
M instructionAPI/src/Operation.C
M parseAPI/src/IA_IAPI.C
M parseAPI/src/IA_x86.C
Log Message:
-----------
1. Reduce duplicated read/written registers
2. Tail call target may not be parsed during the lookup
Commit: e440a24a285dae8111e4562214f8c7681e569d06
https://github.com/dyninst/dyninst/commit/e440a24a285dae8111e4562214f8c7681e569d06
Author: Xiaozhu Meng <xmeng@xxxxxxxxxxx>
Date: 2018-05-22 (Tue, 22 May 2018)
Changed paths:
M CMakeLists.txt
M instructionAPI/h/Operation_impl.h
M instructionAPI/src/Operation.C
Log Message:
-----------
Fix implicit operands
Commit: 5016030458c1def8587d06d1324cea6e1c65e3ba
https://github.com/dyninst/dyninst/commit/5016030458c1def8587d06d1324cea6e1c65e3ba
Author: Xiaozhu Meng <xmeng@xxxxxxxxxxx>
Date: 2018-05-29 (Tue, 29 May 2018)
Changed paths:
M common/src/arch-x86.C
Log Message:
-----------
std::once_flag should not be declared as local variables
Commit: 9f497d9590bfef991005b57c4ef971b7314d5bed
https://github.com/dyninst/dyninst/commit/9f497d9590bfef991005b57c4ef971b7314d5bed
Author: Xiaozhu Meng <xmeng@xxxxxxxxxxx>
Date: 2018-05-29 (Tue, 29 May 2018)
Changed paths:
M parseAPI/h/CFG.h
M parseAPI/src/Function.C
Log Message:
-----------
Change function return status to std::atomic to avoid races and deadlock
Commit: d62e3491ac546cfc6964219fa86f4a9e39718863
https://github.com/dyninst/dyninst/commit/d62e3491ac546cfc6964219fa86f4a9e39718863
Author: Xiaozhu Meng <xmeng@xxxxxxxxxxx>
Date: 2018-05-31 (Thu, 31 May 2018)
Changed paths:
M parseAPI/src/Parser.C
Log Message:
-----------
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
Commit: 67fce2e5d95c1e999e94e82765a334eaab6ef4a2
https://github.com/dyninst/dyninst/commit/67fce2e5d95c1e999e94e82765a334eaab6ef4a2
Author: Xiaozhu Meng <xmeng@xxxxxxxxxxx>
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 <xmeng@xxxxxxxxxxx>
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 <xmeng@xxxxxxxxxxx>
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 <xmeng@xxxxxxxxxxx>
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
Commit: 3385cd6c252270ad7c92dc5550e149a3b0c1566f
https://github.com/dyninst/dyninst/commit/3385cd6c252270ad7c92dc5550e149a3b0c1566f
Author: Xiaozhu Meng <xmeng@xxxxxxxxxxx>
Date: 2018-06-19 (Tue, 19 Jun 2018)
Changed paths:
M CMakeLists.txt
M parseAPI/src/Block.C
M parseAPI/src/Function.C
Log Message:
-----------
1. Do not make testsuite a requirement for installing dyninst
2. After parallel parsing, we should not need locks for read operations
Commit: 86fbb589e2dc5163364738c552bbb2bb568a3b1a
https://github.com/dyninst/dyninst/commit/86fbb589e2dc5163364738c552bbb2bb568a3b1a
Author: Xiaozhu Meng <xmeng@xxxxxxxxxxx>
Date: 2018-06-20 (Wed, 20 Jun 2018)
Changed paths:
M parseAPI/src/CFGFactory.C
M parseAPI/src/SymtabCodeSource.C
Log Message:
-----------
1. IFUNC is real code
2. remove unused std::map (it is only written), which is not thread-safe and may cause crashes
Commit: 55d04addfc93bf505915f734517ebc6e8adc2475
https://github.com/dyninst/dyninst/commit/55d04addfc93bf505915f734517ebc6e8adc2475
Author: Xiaozhu Meng <xmeng@xxxxxxxxxxx>
Date: 2018-06-29 (Fri, 29 Jun 2018)
Changed paths:
M parseAPI/src/ParseData.C
M parseAPI/src/ParseData.h
M parseAPI/src/Parser.C
M parseAPI/src/Parser.h
Log Message:
-----------
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
Commit: 7b75dd2f75199ac2ef0706c7f7c5f07fe3401002
https://github.com/dyninst/dyninst/commit/7b75dd2f75199ac2ef0706c7f7c5f07fe3401002
Author: Xiaozhu Meng <xmeng@xxxxxxxxxxx>
Date: 2018-07-01 (Sun, 01 Jul 2018)
Changed paths:
M parseAPI/src/IA_aarch64.C
M parseAPI/src/IA_power.C
M parseAPI/src/IA_x86.C
M parseAPI/src/IndirectAnalyzer.C
M parseAPI/src/ParseData.h
M parseAPI/src/Parser.C
Log Message:
-----------
Defer constructing blocksByRange to function finalizing, and removing the use blocksByRange in tail call identificatin and jump table analysis
Commit: 4f1da48f606a44aada6d9cebb1fdecc113216dac
https://github.com/dyninst/dyninst/commit/4f1da48f606a44aada6d9cebb1fdecc113216dac
Author: Xiaozhu Meng <xmeng@xxxxxxxxxxx>
Date: 2018-07-04 (Wed, 04 Jul 2018)
Changed paths:
M parseAPI/h/CFG.h
M parseAPI/src/Parser.C
M parseAPI/src/Parser.h
Log Message:
-----------
Parallelize function finalizing
Commit: 890a2b9c12b6c13fb4ef39513507d05b28038493
https://github.com/dyninst/dyninst/commit/890a2b9c12b6c13fb4ef39513507d05b28038493
Author: Xiaozhu Meng <xmeng@xxxxxxxxxxx>
Date: 2018-07-05 (Thu, 05 Jul 2018)
Changed paths:
M dataflowAPI/h/ABI.h
M dataflowAPI/src/ABI.C
Log Message:
-----------
The static ABI pointers should be thread local
Commit: 673a947c521464bdb38bef8622b0c74563e35ac0
https://github.com/dyninst/dyninst/commit/673a947c521464bdb38bef8622b0c74563e35ac0
Author: Xiaozhu Meng <xmeng@xxxxxxxxxxx>
Date: 2018-07-06 (Fri, 06 Jul 2018)
Changed paths:
M common/h/dyntypes.h
M dataflowAPI/h/ABI.h
M dataflowAPI/src/ABI.C
M instructionAPI/h/BinaryFunction.h
M instructionAPI/h/Dereference.h
M instructionAPI/h/Result.h
M instructionAPI/src/ArchSpecificFormatters.C
M instructionAPI/src/Operand.C
M instructionAPI/src/Register.C
M parseAPI/src/SymtabCodeSource.C
M symtabAPI/src/dwarfWalker.C
R testsuite
Log Message:
-----------
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
Commit: 6c86e9a4201eb5921574ccc636512daf9058688c
https://github.com/dyninst/dyninst/commit/6c86e9a4201eb5921574ccc636512daf9058688c
Author: Xiaozhu Meng <xmeng@xxxxxxxxxxx>
Date: 2018-07-06 (Fri, 06 Jul 2018)
Changed paths:
M common/src/arch-aarch64.h
M common/src/arch-power.h
M dyninstAPI/src/BPatch_memoryAccessAdapter.C
M dyninstAPI/src/Relocation/Widgets/CFWidget-ppc.C
M dyninstAPI/src/Relocation/Widgets/PCWidget.C
M dyninstAPI/src/image.C
M dyninstAPI/src/inst-power.C
M dyninstAPI/src/parse-power.C
M instructionAPI/src/Operation.C
Log Message:
-----------
Fix compilation issue on powerpc
Commit: 671d64185561686d13e546c9827d11b096dd5c73
https://github.com/dyninst/dyninst/commit/671d64185561686d13e546c9827d11b096dd5c73
Author: Xiaozhu Meng <xmeng@xxxxxxxxxxx>
Date: 2018-07-09 (Mon, 09 Jul 2018)
Changed paths:
M dyninstAPI/src/Relocation/Widgets/CFWidget-aarch64.C
M dyninstAPI/src/inst-aarch64.C
M stackwalk/src/linux-aarch64-swk.C
Log Message:
-----------
Fix compilation on ARM
Commit: b869b502770e9a8872d121b9ae77b451698e7941
https://github.com/dyninst/dyninst/commit/b869b502770e9a8872d121b9ae77b451698e7941
Author: Xiaozhu Meng <xmeng@xxxxxxxxxxx>
Date: 2018-07-16 (Mon, 16 Jul 2018)
Changed paths:
M common/src/linuxKludges.C
M dataflowAPI/src/slicing.C
M parseAPI/h/CFG.h
M parseAPI/src/ParseData.h
M parseAPI/src/Parser.C
M parseAPI/src/SymtabCodeSource.C
Log Message:
-----------
Start to use cilk data race detectors:
1. Fix real races where getting block source edges in slicing is not
locked
2. Suppress false positves. Cilk race detectors cannot deal with thread
local bariables
Commit: 8323ae71e91cefbe91268c889f55e4e13a45afee
https://github.com/dyninst/dyninst/commit/8323ae71e91cefbe91268c889f55e4e13a45afee
Author: Xiaozhu Meng <xmeng@xxxxxxxxxxx>
Date: 2018-07-17 (Tue, 17 Jul 2018)
Changed paths:
M dataflowAPI/h/ABI.h
M dataflowAPI/src/ABI.C
Log Message:
-----------
Make other static variables in ABI class be thread local
Commit: ccebb687f1f2a893755ea1bb2970d1eeb9cb32a4
https://github.com/dyninst/dyninst/commit/ccebb687f1f2a893755ea1bb2970d1eeb9cb32a4
Author: Xiaozhu Meng <xmeng@xxxxxxxxxxx>
Date: 2018-07-23 (Mon, 23 Jul 2018)
Changed paths:
M parseAPI/h/CFG.h
M parseAPI/h/LockFreeQueue.h
M parseAPI/src/CFGFactory.C
M parseAPI/src/Function.C
M parseAPI/src/ParseData.C
Log Message:
-----------
More annotation code to suppress false positives of data race reports
from cilkscreen
1. add fake locking for std::atomic
2. remove access history for objects initialized by one thread and then
shared
Commit: 90304602fcc4b2f61f8834861b71832d8f2c3135
https://github.com/dyninst/dyninst/commit/90304602fcc4b2f61f8834861b71832d8f2c3135
Author: Xiaozhu Meng <xmeng@xxxxxxxxxxx>
Date: 2018-07-23 (Mon, 23 Jul 2018)
Changed paths:
M parseAPI/src/SymtabCodeSource.C
Log Message:
-----------
Should not parallelize SymtabCodeSource::init_hints, which basically
appending elements to a shared vector. Right now, almost all threads are
ideal to wait for lock to append.
Commit: 698f5b8996071695b250307c376dca62633f888b
https://github.com/dyninst/dyninst/commit/698f5b8996071695b250307c376dca62633f888b
Author: Xiaozhu Meng <xmeng@xxxxxxxxxxx>
Date: 2018-07-24 (Tue, 24 Jul 2018)
Changed paths:
M parseAPI/src/ParseData.C
M parseAPI/src/ParseData.h
Log Message:
-----------
Refactor frame status setter/getter to suppress false positive data
races
Commit: a89e8c9d74f0f5582389f6446aecfed5d99a2162
https://github.com/dyninst/dyninst/commit/a89e8c9d74f0f5582389f6446aecfed5d99a2162
Author: Xiaozhu Meng <xmeng@xxxxxxxxxxx>
Date: 2018-07-30 (Mon, 30 Jul 2018)
Changed paths:
M common/h/IBSTree.h
M common/h/mcs-lock.h
M common/h/pfq-rwlock.h
M common/src/mcs-lock.C
M common/src/pfq-rwlock.C
M dataflowAPI/h/ABI.h
M dataflowAPI/src/ABI.C
M parseAPI/h/CFG.h
M parseAPI/h/CodeSource.h
M parseAPI/h/LockFreeQueue.h
M parseAPI/src/ParseData.h
M parseAPI/src/Parser.h
M symtabAPI/src/dwarfWalker.C
Log Message:
-----------
1. Replace std::atomic with boost::atomic so that gcc 4.8.5 can still compile dyninst
2. Only put pointers to thread local so that newer compilers can also compile __thread
Commit: 1e30a1200d2aef0b46b048088d99a7dd99ff5675
https://github.com/dyninst/dyninst/commit/1e30a1200d2aef0b46b048088d99a7dd99ff5675
Author: Xiaozhu Meng <xmeng@xxxxxxxxxxx>
Date: 2018-08-05 (Sun, 05 Aug 2018)
Changed paths:
M parseAPI/src/IA_aarch64.C
M parseAPI/src/IA_power.C
M parseAPI/src/IA_x86.C
M parseAPI/src/Parser.C
M parseAPI/src/Parser.h
Log Message:
-----------
Fix undeterministic tail call identification results exposed in parallel code parsing
The tail call identification algorithm contains two related heuristics:
(1) A jump to a block within the same function is not a tail call
(2) A jump to a known entry point is a tail call
For (1), whether or not the jump target is within the current function depends on
the parsing order of other functions, especially the callee functions. To have a
consistent tail call identification results, I add a tail call cleaning phase in
the parsing finalizing phase. Because we already know the complete function
boundary at function finalizing time, we can rectify the bogus tail calls and
removed the functions caused by those bogus tail calls.
For (2), if a known entry point is created by a bogus tail call, (2) will lead to
more bogus tail calls. This is exposed by a special case. Suppose function A
contains multiple jumps to block B. Block B has no incoming edges from any other
function, nor does it has a symbol associated. So, B should be part of A. One of
the jump in A (denoted as J1) will be marked as tail call because it tears down
the stack frame before the jump, while other jumps (denoted as non-J1) will not
be marked as tail calls. If J1 is parsed before non-J1, block B will be marked as
a tail call entry, and all non-J1 will be marked as tail calls because they jump
to ``a known entry''. Function A will thus not contain B, and the rectify method
mentioned in the previous parapgraph will not work. So, I change to only mark a
jump as a tail call when the target is a hint.
Commit: 0dc63035bdeaa71f896cdda09e8659cc8155e9ae
https://github.com/dyninst/dyninst/commit/0dc63035bdeaa71f896cdda09e8659cc8155e9ae
Author: Xiaozhu Meng <xmeng@xxxxxxxxxxx>
Date: 2018-08-06 (Mon, 06 Aug 2018)
Changed paths:
M dataflowAPI/src/RegisterMap.C
Log Message:
-----------
The register map should also be in TLS
Commit: 21c93abcd5fd918c78354a9ae960e2d4310baa91
https://github.com/dyninst/dyninst/commit/21c93abcd5fd918c78354a9ae960e2d4310baa91
Author: Xiaozhu Meng <xmeng@xxxxxxxxxxx>
Date: 2018-08-14 (Tue, 14 Aug 2018)
Changed paths:
M dataflowAPI/src/slicing.C
Log Message:
-----------
Should not trigger finalizing during slicing
Commit: c3a1400592a7aad6136b4f0662d0f8b7971474a7
https://github.com/dyninst/dyninst/commit/c3a1400592a7aad6136b4f0662d0f8b7971474a7
Author: Xiaozhu Meng <xmeng@xxxxxxxxxxx>
Date: 2018-08-23 (Thu, 23 Aug 2018)
Changed paths:
M dataflowAPI/src/AbslocInterface.C
M dataflowAPI/src/slicing.C
M parseAPI/h/CFG.h
M parseAPI/h/CFGFactory.h
M parseAPI/src/BoundFactCalculator.C
M parseAPI/src/CFGFactory.C
M parseAPI/src/IndirectAnalyzer.C
M parseAPI/src/IndirectAnalyzer.h
M parseAPI/src/JumpTableIndexPred.C
M parseAPI/src/Parser.C
M parseAPI/src/Parser.h
Log Message:
-----------
After carefully comparing the parsing output of runs with different
numbers of threads and examining the debug logs, there are many issues:
1. During parallel parsing, we split a block when the block has an
incoming edge within the block range. However, we do not split a block
if the edge jumps into the block range of a block from another function.
So, at finalizing time, we should split such overlapped blocks. An
alternative here is to split a block from another function at parsing
time, which requires a global range lookup and will cause mutual
exclusion in parallel parsing.
2. The jump table analysis is not working properly for many reasons...
2.A. When generating Absloc, we should not bind SP or FP when stack
analysis is not enabled. Otherwise, the default value for binding
SP and FP is 0, causing wrong abstract locations.
2.B. Slicing should no longer use SingleContextOrInterproc because
SingleContextOrInterproc relies on a complete function boundary,
which is not the case when the jump table analysis invokes slicing.
Slicing should just traverse all source edges and let the slicing
predicate determine whether or not to follow interprocedural edges.
2.C. Slicing should treat tail calls as function calls rather than normal jumps.
2.D The jump table analysis needs to traverse the CFG from function entry.
For blocks shared by multiple functions, the outgoing edges may be changed
during the jump table analysis. So, we should make a copy of the outgoing
edges before traversing and the copy operation should have locking. Here,
an alternative is to lock the block during traversing, but I feel this
alternative may cause too much lock contention.
2.E We should ignore CATCH edges because they do not represent real
control flow.
2.F We should distinguish zero extend and sign extend memory reads.
Commit: 675311c69a546943b131aa00294b41fe286e83e3
https://github.com/dyninst/dyninst/commit/675311c69a546943b131aa00294b41fe286e83e3
Author: Xiaozhu Meng <xmeng@xxxxxxxxxxx>
Date: 2018-08-27 (Mon, 27 Aug 2018)
Changed paths:
M cmake/packages.cmake
Log Message:
-----------
Automatically build boost_atomic
Commit: 0b80af0577148e723e9a7b2d9d714dc46d0c9b7a
https://github.com/dyninst/dyninst/commit/0b80af0577148e723e9a7b2d9d714dc46d0c9b7a
Author: Xiaozhu Meng <xmeng@xxxxxxxxxxx>
Date: 2018-08-27 (Mon, 27 Aug 2018)
Changed paths:
M dataflowAPI/src/ABI.C
Log Message:
-----------
Fix typos for compilation
Commit: 83855db1d9025169fba1e6b1e9ce114fc8eb5d81
https://github.com/dyninst/dyninst/commit/83855db1d9025169fba1e6b1e9ce114fc8eb5d81
Author: Xiaozhu Meng <xmeng@xxxxxxxxxxx>
Date: 2018-09-10 (Mon, 10 Sep 2018)
Changed paths:
M parseAPI/h/CFG.h
M parseAPI/src/Block.C
M parseAPI/src/CFGFactory.C
M parseAPI/src/Function.C
M parseAPI/src/IA_power.C
M parseAPI/src/Parser.C
M parseAPI/src/ParserDetails.C
Log Message:
-----------
Fix non-deterministic parallel parsing on POWER 8. The problems are
mostly related to the new ABI, where each function has two entries.
1. Tail call heuristics need to find the function with a normal
function name
2. A function having two entries cause many ParseAPI::Function to
share code. This exposes issues in our non-returning function
analysis.
2.A. The two ParseAPI::Function should have the same return status.
I just let one ParseAPI::Function delayed by the other.
2.B. No longer use UNKNOWN status. UNKNOWN should just be RETURN
as we do not know the control flow, so we should assume the
function may return.
Commit: b5639285aaa40a4b80d0522078d73c5e3f9ff98c
https://github.com/dyninst/dyninst/commit/b5639285aaa40a4b80d0522078d73c5e3f9ff98c
Author: Xiaozhu Meng <xmeng@xxxxxxxxxxx>
Date: 2018-09-11 (Tue, 11 Sep 2018)
Changed paths:
M cmake/packages.cmake
M common/h/IBSTree.h
M common/h/dyn_regs.h
M common/src/arch-aarch64.C
M common/src/arch-aarch64.h
M common/src/arch-power.C
M common/src/arch-power.h
M common/src/dyn_regs.C
M common/src/freebsdHeaders.h
M common/src/linuxHeaders.h
M common/src/ntHeaders.h
M common/src/vxworksHeaders.h
M dataflowAPI/rose/x86_64InstructionSemantics.h
M dataflowAPI/src/liveness.C
M dyninstAPI/h/BPatch_snippet.h
M dyninstAPI/src/BPatch_loopTreeNode.C
M dyninstAPI/src/BPatch_point.C
M dyninstAPI/src/BPatch_snippet.C
M dyninstAPI/src/Relocation/CFG/RelocBlock.C
M dyninstAPI/src/Relocation/CFG/RelocBlock.h
M dyninstAPI/src/Relocation/CFG/RelocGraph.C
M dyninstAPI/src/Relocation/CFG/RelocGraph.h
M dyninstAPI/src/Relocation/CodeMover.C
M dyninstAPI/src/Relocation/Springboard.C
M dyninstAPI/src/Relocation/Transformers/Instrumenter.C
M dyninstAPI/src/addressSpace.C
M dyninstAPI/src/ast.C
M dyninstAPI/src/block.C
M dyninstAPI/src/block.h
M dyninstAPI/src/codegen-power.C
M dyninstAPI/src/codegen-power.h
M dyninstAPI/src/emit-power.h
M dyninstAPI/src/function.C
M dyninstAPI/src/function.h
M dyninstAPI/src/image.C
M dyninstAPI/src/inst-power.C
M dyninstAPI/src/inst-power.h
M dyninstAPI/src/inst-x86.C
M dyninstAPI/src/mapped_object.C
M dyninstAPI/src/opcode.h
M dyninstAPI/src/parse-cfg.C
M dyninstAPI/src/parse-cfg.h
M dyninstAPI/src/unix.C
M elf/h/Elf_X.h
M elf/src/Elf_X.C
M instructionAPI/h/InstructionCategories.h
M instructionAPI/h/Operation_impl.h
M instructionAPI/h/Result.h
M instructionAPI/src/Expression.C
M instructionAPI/src/Instruction.C
M instructionAPI/src/InstructionDecoder-aarch64.C
M instructionAPI/src/InstructionDecoder-power.C
M instructionAPI/src/InstructionDecoder-x86.C
M instructionAPI/src/Operation.C
M symtabAPI/CMakeLists.txt
M symtabAPI/h/LineInformation.h
M symtabAPI/h/Module.h
M symtabAPI/h/StringTable.h
M symtabAPI/h/Symtab.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/Object-elf.h
M symtabAPI/src/Symtab.C
M symtabAPI/src/dwarfWalker.C
M symtabAPI/src/dwarfWalker.h
M symtabAPI/src/emitElf.C
Log Message:
-----------
Merge branch 'master' into new-parallel-parsing. Also make changes to
fix compilation
Commit: f4271d42476bd9c07a5b1eafb884c409f1859fb5
https://github.com/dyninst/dyninst/commit/f4271d42476bd9c07a5b1eafb884c409f1859fb5
Author: Xiaozhu Meng <xmeng@xxxxxxxxxxx>
Date: 2018-09-11 (Tue, 11 Sep 2018)
Changed paths:
M dyninstAPI/src/parse-cfg.C
Log Message:
-----------
Parallel code parsing needs to record the function that creates a block.
Adjust parse_block in dyninstAPI to this code change.
Commit: 0417da02415ee7bacd138414b20ede72723b6a09
https://github.com/dyninst/dyninst/commit/0417da02415ee7bacd138414b20ede72723b6a09
Author: Xiaozhu Meng <xmeng@xxxxxxxxxxx>
Date: 2018-09-12 (Wed, 12 Sep 2018)
Changed paths:
M dyninstAPI/src/BPatch_function.C
M dyninstAPI/src/BPatch_point.C
M dyninstAPI/src/block.h
M dyninstAPI/src/image.C
M dyninstAPI/src/parse-cfg.C
M dyninstAPI/src/parse-cfg.h
M instructionAPI/h/Operation_impl.h
M instructionAPI/src/Operation.C
M parseAPI/src/JumpTableFormatPred.C
M parseAPI/src/Parser.C
Log Message:
-----------
1. Re-implement the power preabmle identification code, instead of checking format string,
we directly check the first 2 bytes
2. Fix instruction mnemonic output on power 8
3. Call Function::finalize() to re-calculate function data
Commit: ba3b4e5e4d42c4b40a9cc6e16a4cf396e50bfc52
https://github.com/dyninst/dyninst/commit/ba3b4e5e4d42c4b40a9cc6e16a4cf396e50bfc52
Author: Xiaozhu Meng <xmeng@xxxxxxxxxxx>
Date: 2018-09-13 (Thu, 13 Sep 2018)
Changed paths:
M parseAPI/src/JumpTableFormatPred.C
M parseAPI/src/Parser.C
Log Message:
-----------
Two more fixes for parallel parsing
1. There is one reference to Block source edges that lacks locking
2. Only the function frame that creates a block should parse the block
Commit: 430c9b08575a23dc0a69dd56c602084bedf21d86
https://github.com/dyninst/dyninst/commit/430c9b08575a23dc0a69dd56c602084bedf21d86
Author: Xiaozhu Meng <xmeng@xxxxxxxxxxx>
Date: 2018-09-14 (Fri, 14 Sep 2018)
Changed paths:
M parseAPI/src/Parser.C
Log Message:
-----------
Fix typo: missed an "else" before an if statement
Commit: 3fb9fdde7c23f40b987db2250ca3b34d84155a02
https://github.com/dyninst/dyninst/commit/3fb9fdde7c23f40b987db2250ca3b34d84155a02
Author: Xiaozhu Meng <xmeng@xxxxxxxxxxx>
Date: 2018-09-14 (Fri, 14 Sep 2018)
Changed paths:
M dataflowAPI/src/AbslocInterface.C
M parseAPI/src/IndirectAnalyzer.C
Log Message:
-----------
1. Do not promote individual flag bits such as ZF to the full flag register
when converting InstructionAPI::Instruction to Assignment. Jump table
analysis checks zero flags.
2. When parsing a jump table, we use symbol table to trim out of range jump
targets to remove bogus targets. When functions share code, we need to pick
the symbol range that contains the indirect jump to do the trimming.
Commit: cdfa6bd2cd07ccc4e0551fe4a1fb047a11131465
https://github.com/dyninst/dyninst/commit/cdfa6bd2cd07ccc4e0551fe4a1fb047a11131465
Author: Xiaozhu Meng <xmeng@xxxxxxxxxxx>
Date: 2018-09-14 (Fri, 14 Sep 2018)
Changed paths:
M parseAPI/src/Parser.C
Log Message:
-----------
Handle non-deterministic CFG edges.
1. During spliting blocks, only move edges when we created a new block.
2. The tail call heuristic says if the block is a function entry and the
entry blocks contains only one jump instruction, the jump should be a
tail call. This gives non-deterministic results when the entry is shared
with other functions and one other functions parse the block first. Fix
this in function finalizing
Commit: 295beea1db69a13464a4b1de6d446416b4e17b4e
https://github.com/dyninst/dyninst/commit/295beea1db69a13464a4b1de6d446416b4e17b4e
Author: Xiaozhu Meng <xmeng@xxxxxxxxxxx>
Date: 2018-09-18 (Tue, 18 Sep 2018)
Changed paths:
M parseAPI/src/BoundFactData.C
M parseAPI/src/Function.C
M parseAPI/src/IndirectASTVisitor.C
M parseAPI/src/IndirectASTVisitor.h
M parseAPI/src/IndirectAnalyzer.C
M parseAPI/src/Parser.C
M parseAPI/src/SymbolicExpression.h
Log Message:
-----------
1. Need to invalidate the cache before finalizing a function
2. Block range lookup is not ready to use during parsing. When we
delay parsing jumps, the block that contains the indirect jump
may be split when we actually parse the indirect jump. We need
to follow fall thourgh edge to find the latest block that has
the indirect jump
3. When decoding instructions during jump table analysis, we should
use CodeRegion to get raw bytes, which handles overlapping regions
correctly. Overlapping regions can happen for .a file
Commit: 91b082617c53b5133038ad6433f24e165794c2e1
https://github.com/dyninst/dyninst/commit/91b082617c53b5133038ad6433f24e165794c2e1
Author: Xiaozhu Meng <xmeng@xxxxxxxxxxx>
Date: 2018-09-18 (Tue, 18 Sep 2018)
Changed paths:
M parseAPI/src/JumpTableFormatPred.C
Log Message:
-----------
Fix TOC location identificaiton for PowerPC
Commit: 87cf6b8dcc0940ced7032b9c52cf4cb127615970
https://github.com/dyninst/dyninst/commit/87cf6b8dcc0940ced7032b9c52cf4cb127615970
Author: Xiaozhu Meng <xmeng@xxxxxxxxxxx>
Date: 2018-09-23 (Sun, 23 Sep 2018)
Changed paths:
M parseAPI/src/CodeObject.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/ParserDetails.h
Log Message:
-----------
Continue to fix non-deterministic behaviors of parallel parsing
1. Force two rules to simplify the interactions between threads
1.A. Each basic block should be parsed and created only by one thread.
1.B. Each edge should be parsed and created only by one thread. To do
this, we add edges source address into the ParseWorkElem. We also
need to adjust non-returning function analysis because only one
of shared functions will continue parsing and have the return
status. All other functions should be delayed and wait for the
winning function to finish parsing
These two rules ensure that we do not need a large critical section
when we look for the correct source block of an edge during parsing
(See 2 for more detail)
2. When parsing an edge, the source block of the edge could have
been split by the same thread. We need to follow the fallthrough
edge to find the correct Block object that contains the edge.
The two rules above ensure that the source block would not be
split by a different thread, thus we do not need to build a
large critical for when following the fall-through edges.
3. At finalizing time, fix the block spliting implementiation
caused by functions sharing code. During parallel parsing,
there is no range lookup because building a range lookup
would cause mutual exclusion for threads. So, during parallel
parsing, we only split blocks within a thread. For functions
sharing code, this means overlapping blocks in separate functions.
Commit: e94542723fb7cb4b613813d854cd58bf27d49059
https://github.com/dyninst/dyninst/commit/e94542723fb7cb4b613813d854cd58bf27d49059
Author: Xiaozhu Meng <xmeng@xxxxxxxxxxx>
Date: 2018-10-02 (Tue, 02 Oct 2018)
Changed paths:
M parseAPI/src/ParseData.h
M parseAPI/src/Parser.C
M parseAPI/src/Parser.h
Log Message:
-----------
More fixes for removing duplicated edges and wrong edges.
1. A thread may attempt to parse an address for edges multiple times
when there are overlapping instructions. Handle this case to ensure
that each address is parsed for edges once. This fix remove duplicated
edges.
2. Fix moving edges during block split, which caused wrong edges.
The block split during parsing and the consistent block split
during finalizing should use the same algorithm described below:
* We move outgoing edges from block A to block B, which is
* necessary when spliting blocks.
* The start of block B should be consistent with block A.
* There are three cases:
*
* Case 1: the end of A and B are the same
* A : [ ]
* B : [ ]
* In such case, we can directly move the edges from A to B
*
* Case 2: block A contains block B
* A : [ ]
* B : [ ]
* edge_b : []
* In this case, the outgoing edges of A should not be moved to B.
* Instead, we need to follow the fallthrough edge of B to find a
* block (edge_b), which ends at same location as A. We then move
* outgoing edges of A to edge_b.
* Case 3: End of A is smaller than the end of B
* A : [ ]
* B : [ ]
* In this case, the outgoing edges of A should only contain a
* fallthrough edge (otherwise, B's end will the same as A).
* We remove this fall through edge for now and we will add the
* edge back in finalizing.
*
The same algorithm description is also documented in function
Parser::move_edges_consistent_blocks(Block *A, Block *B) in parseAPI/src/Parser.C
Commit: 0ca00fa45d33f65406cd51f444fd1024bcb088d6
https://github.com/dyninst/dyninst/commit/0ca00fa45d33f65406cd51f444fd1024bcb088d6
Author: Xiaozhu Meng <xmeng@xxxxxxxxxxx>
Date: 2018-10-09 (Tue, 09 Oct 2018)
Changed paths:
M parseAPI/src/CFGModifier.C
M parseAPI/src/IA_IAPI.C
M parseAPI/src/JumpTableFormatPred.C
M parseAPI/src/ParseData.h
M parseAPI/src/Parser.C
M parseAPI/src/Parser.h
M parseAPI/src/debug_parse.C
Log Message:
-----------
1. Change the DYNINST_DEBUG_PARSING from a flag to a debug log name prefix.
In parallel parsing, we need different threads to output to different files
2. Change the jump table analysis to eliminate non-determinisitic behaviors
2.1. Do not rely on the order of node in slice
2.2. Add a fix-point analysis to allow jump table analysis to redo analysis,
discover new out-going edges due to new in-cominging edges, and continue
parsing
Commit: d8c9be54a7b0665a6c0af75ead66555c8819f856
https://github.com/dyninst/dyninst/commit/d8c9be54a7b0665a6c0af75ead66555c8819f856
Author: Xiaozhu Meng <xmeng@xxxxxxxxxxx>
Date: 2018-10-10 (Wed, 10 Oct 2018)
Changed paths:
M parseAPI/src/Parser.C
M parseAPI/src/Parser.h
Log Message:
-----------
A few fixes for non-returning function analysis
1. We determine cycle by only checking the number delayed frames.
Change it to check whether the set of delayed frames stays the same.
This change may not be necessary, but it is safer
2. Enforce the correct order for checking function status when
dealing with tail calls and shared code. The common code is moved
to a new function Parser::update_function_ret_status.
The return status starts with UNSET, and increases to RETURN, and maybe NORETURN
Once it is RETURN or NORETURN, it will not go back to UNSET.
Therefore, it is crucial for the following if statements to be the right order:
First check the smaller values, and then check the larger values.
Consider that if we reverse the order. So the code looks like
1) if (other_func->retstatus() == RETURN) {
....
2) } else if (other_func->retstatus() == UNSET) {
....
}
In such code structure, at line 1), the other_func can be in UNSET, so the check fails.
Concurrently, the other_func can be immediately set to RETURN, making the check at
line 2) failing. So, the frame.func is neither delayed, nor updates its return status
to RETURN, which can lead to wrong NORETURN status.
Commit: 95e89bc3487f7a4716f49211e88b0c890c9cdeb8
https://github.com/dyninst/dyninst/commit/95e89bc3487f7a4716f49211e88b0c890c9cdeb8
Author: Xiaozhu Meng <xmeng@xxxxxxxxxxx>
Date: 2018-10-10 (Wed, 10 Oct 2018)
Changed paths:
M parseAPI/src/Parser.C
Log Message:
-----------
Fix typos in fix-point analysis for jump tables and remove sink edges when finding new edges
Commit: 71e14a71bd68089faa0b1a7cc4e79c0c6f7b5e49
https://github.com/dyninst/dyninst/commit/71e14a71bd68089faa0b1a7cc4e79c0c6f7b5e49
Author: Xiaozhu Meng <xmeng@xxxxxxxxxxx>
Date: 2018-10-11 (Thu, 11 Oct 2018)
Changed paths:
M parseAPI/src/Parser.C
Log Message:
-----------
Attempting to remove sink edges causes weird side effects on memory usages.
Remove related code.
Commit: 0777c247db559a2a8d5988a2045c917829f60d7c
https://github.com/dyninst/dyninst/commit/0777c247db559a2a8d5988a2045c917829f60d7c
Author: Xiaozhu Meng <xmeng@xxxxxxxxxxx>
Date: 2018-10-16 (Tue, 16 Oct 2018)
Changed paths:
M parseAPI/h/CFG.h
M parseAPI/src/ParseData.C
M parseAPI/src/ParseData.h
M parseAPI/src/Parser.C
M parseAPI/src/Parser.h
Log Message:
-----------
1. Use a new tbb::concurrent_hash_map to record block end.
In addition, when adding out-going edges to a block, we
first query the block end hash map to get the accessor
to the block. When splitting the block, we also first
query the block end hash map to get the access to the block.
tbb::concurrent_hash_map provides implicit read-write lock
through the accessor. Therefore, we enforce that adding
out-going edges are not going to be concurrent with block split.
2. Add a bunch of asserts that check edge consistency. This is
for debug purpose and will be removed later
Commit: e48c16786f8cc50851f07d921350f2bc69829c2f
https://github.com/dyninst/dyninst/commit/e48c16786f8cc50851f07d921350f2bc69829c2f
Author: Xiaozhu Meng <xmeng@xxxxxxxxxxx>
Date: 2018-10-16 (Tue, 16 Oct 2018)
Changed paths:
M instructionAPI/src/InstructionDecoder-power.C
M instructionAPI/src/power_opcode_tables.C
Log Message:
-----------
The power instruction decoding tables are declared as std::map.
Currently, we use the [] operator to access entries in the table.
While the tables are mostly read-only, when we encounter instructions
that are not in the table. The [] operator may create new entries
and cause crashes. Therefore, change all accesses from [] operation
to use find() method.
Commit: c6cf5abbf49cf013f0e650bc7a55ab5d7b4ee6e8
https://github.com/dyninst/dyninst/commit/c6cf5abbf49cf013f0e650bc7a55ab5d7b4ee6e8
Author: Xiaozhu Meng <xmeng@xxxxxxxxxxx>
Date: 2018-10-16 (Tue, 16 Oct 2018)
Changed paths:
M parseAPI/src/Parser.C
M parseAPI/src/ParserDetails.C
Log Message:
-----------
A block can be split between it is just recorded in the block end
map and adding out-going edge work elements. This means Block::end()
and Block::last() are not reliable when adding parsing work elements.
Change them to use IA_IAPI::getAddr(), which is a local object.
Commit: 1cfbdeaff2fbe7f8f37e28827fd02b6c07f356ab
https://github.com/dyninst/dyninst/commit/1cfbdeaff2fbe7f8f37e28827fd02b6c07f356ab
Author: Xiaozhu Meng <xmeng@xxxxxxxxxxx>
Date: 2018-10-17 (Wed, 17 Oct 2018)
Changed paths:
M dataflowAPI/rose/semantics/DispatcherPowerpc.C
M instructionAPI/src/power_opcode_tables.C
M parseAPI/src/CodeObject.C
M parseAPI/src/IndirectAnalyzer.C
M parseAPI/src/Parser.C
M parseAPI/src/Parser.h
M parseAPI/src/ParserDetails.C
Log Message:
-----------
1. Fix typos in the Power instruction decoding table and add
instruction semantics for rldicl
2. When pushing new parse work elements into the work queue,
we cannot get the source address of the edge from Block::last(),
because we currently do not hold an accessor to the block end
and the block can be split. So, before adding new work elements,
first acquire an accessor to the block end
Commit: b89bee208fbaed650978a7380672d330db9dcde9
https://github.com/dyninst/dyninst/commit/b89bee208fbaed650978a7380672d330db9dcde9
Author: Xiaozhu Meng <xmeng@xxxxxxxxxxx>
Date: 2018-10-18 (Thu, 18 Oct 2018)
Changed paths:
M parseAPI/h/CFG.h
Log Message:
-----------
Remove an edge check that caused significant slowdown
Commit: 46f62ddd05d60352499ec51049b0059c54f799b8
https://github.com/dyninst/dyninst/commit/46f62ddd05d60352499ec51049b0059c54f799b8
Author: Xiaozhu Meng <xmeng@xxxxxxxxxxx>
Date: 2018-10-21 (Sun, 21 Oct 2018)
Changed paths:
M common/src/arch-aarch64.h
M common/src/arch-power.h
M dataflowAPI/rose/semantics/DispatcherARM64.C
M dataflowAPI/src/ABI.C
M dataflowAPI/src/RegisterMap.C
M dataflowAPI/src/RegisterMap.h
M dataflowAPI/src/liveness.C
M dwarf/h/dwarfFrameParser.h
M dwarf/src/dwarfFrameParser.C
M dwarf/src/dwarfHandle.C
M dwarf/src/dwarfResult.C
M dyninstAPI/CMakeLists.txt
M dyninstAPI/src/Relocation/Springboard.C
M dyninstAPI/src/Relocation/Transformers/Movement-adhoc.C
M dyninstAPI/src/Relocation/Widgets/CFWidget-aarch64.C
M dyninstAPI/src/Relocation/Widgets/InstWidget.C
M dyninstAPI/src/Relocation/Widgets/PCWidget.C
M dyninstAPI/src/Relocation/Widgets/RelDataWidget.C
M dyninstAPI/src/Relocation/Widgets/RelDataWidget.h
M dyninstAPI/src/addressSpace.C
M dyninstAPI/src/ast.C
M dyninstAPI/src/baseTramp.C
M dyninstAPI/src/codegen-aarch64.C
M dyninstAPI/src/codegen-aarch64.h
M dyninstAPI/src/codegen-power.C
M dyninstAPI/src/codegen-power.h
M dyninstAPI/src/codegen-x86.h
M dyninstAPI/src/codegen.C
M dyninstAPI/src/codegen.h
M dyninstAPI/src/dynProcess.C
A dyninstAPI/src/emit-aarch64.C
M dyninstAPI/src/emit-aarch64.h
M dyninstAPI/src/emit-x86.C
M dyninstAPI/src/inst-aarch64.C
M dyninstAPI/src/inst-aarch64.h
M dyninstAPI/src/inst-power.C
M dyninstAPI/src/linux.C
M dyninstAPI/src/parse-aarch64.C
M dyninstAPI/src/pcEventMuxer.C
M dyninstAPI/src/pcEventMuxer.h
M dyninstAPI/src/registerSpace.C
M dyninstAPI/src/registerSpace.h
M dyninstAPI/src/stackwalk-aarch64.C
M dyninstAPI/src/unix.C
M dyninstAPI_RT/src/RTcommon.c
M instructionAPI/src/InstructionDecoder-aarch64.C
M parseAPI/src/SymtabCodeSource.C
M proccontrol/src/linux.C
M proccontrol/src/process.C
M stackwalk/h/framestepper.h
M stackwalk/src/dbginfo-stepper.C
M stackwalk/src/framestepper.C
M stackwalk/src/linuxbsd-x86-swk.C
M stackwalk/src/sw.h
M symtabAPI/h/Symtab.h
M symtabAPI/src/Function.C
M symtabAPI/src/Object-elf.C
M symtabAPI/src/emitElf.C
M symtabAPI/src/emitElf.h
M symtabAPI/src/emitElfStatic.C
M symtabAPI/src/relocationEntry-elf-aarch64.C
M symtabAPI/src/relocationEntry-elf-x86.C
Log Message:
-----------
Merge branch 'master' into new-parallel-parsing
Commit: 67591f75f08881a431b34cd04a7d81ed52c15bfc
https://github.com/dyninst/dyninst/commit/67591f75f08881a431b34cd04a7d81ed52c15bfc
Author: Sasha Nicolas <sasha@xxxxxxxxxxx>
Date: 2018-10-23 (Tue, 23 Oct 2018)
Changed paths:
M cmake/packages.cmake
Log Message:
-----------
Modifying cmake configuration to compile and install TBB.
Commit: 07bdc17e2ecfbd1e5be36d0122e227692055299d
https://github.com/dyninst/dyninst/commit/07bdc17e2ecfbd1e5be36d0122e227692055299d
Author: Xiaozhu Meng <xmeng@xxxxxxxxxxx>
Date: 2018-10-25 (Thu, 25 Oct 2018)
Changed paths:
M parseAPI/src/Function.C
M parseAPI/src/Parser.C
M parseAPI/src/ParserDetails.C
Log Message:
-----------
1. Fix inconsistent block splits
2. Fix non-returning function analysis for PLT stubs, where a PLT stub
may first be set to RETURN and then set to NORETURN.
3. When parsing call fallthrough edge, the corresponding call edge may
still point to sink (not handled yet), which causes the code to
believe it is an indirect call. So, change the code to look up callee
by using the callee entry address.
Commit: 97a8c434e4926a23cbc53fb7cb447fb7e1f4df5c
https://github.com/dyninst/dyninst/commit/97a8c434e4926a23cbc53fb7cb447fb7e1f4df5c
Author: Xiaozhu Meng <xmeng@xxxxxxxxxxx>
Date: 2018-10-25 (Thu, 25 Oct 2018)
Changed paths:
M .gitignore
M CMakeLists.txt
M cmake/packages.cmake
M cmake/shared.cmake
M common/h/dyn_regs.h
M common/h/entryIDs.h
M common/src/headers.h
M common/src/linuxHeaders.h
M examples/CMakeLists.txt
M instructionAPI/src/InstructionDecoder-power.C
M instructionAPI/src/InstructionDecoder-power.h
M instructionAPI/src/power_opcode_tables.C
M parseAPI/src/Function.C
M parseAPI/src/Parser.C
Log Message:
-----------
Merge branch 'master' into new-parallel-parsing
Rmove setting function ret status during finalizing
Conflicts:
cmake/packages.cmake
examples/CMakeLists.txt
instructionAPI/src/power_opcode_tables.C
Commit: 896144c647d5ddb423bbfc6da338cda17ca24185
https://github.com/dyninst/dyninst/commit/896144c647d5ddb423bbfc6da338cda17ca24185
Author: Xiaozhu Meng <mxz297@xxxxxxxxx>
Date: 2018-10-25 (Thu, 25 Oct 2018)
Changed paths:
A .gitmodules
M CMakeLists.txt
M cmake/Modules/FindLibDwarf.cmake
A cmake/Modules/FindTBB
A cmake/Modules/FindTBB.cmake
A cmake/endian.cmake
M cmake/options.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/dyntypes.h
A common/h/mcs-lock.h
A common/h/pfq-rwlock.h
A common/h/race-detector-annotations.h
M common/h/util.h
A common/src/LockTraits.h
M common/src/arch-aarch64.h
M common/src/arch-power.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/linuxKludges.C
A common/src/mcs-lock.C
M common/src/pathName.C
A common/src/pfq-rwlock.C
A common/src/race-detector-annotations.C
M common/src/singleton_object_pool.h
M common/src/string-regex.C
M dataflowAPI/h/ABI.h
M dataflowAPI/h/Absloc.h
M dataflowAPI/h/AbslocInterface.h
M dataflowAPI/h/SymEval.h
M dataflowAPI/h/liveness.h
M dataflowAPI/h/slicing.h
M dataflowAPI/h/stackanalysis.h
M dataflowAPI/rose/semantics/DispatcherPowerpc.C
M dataflowAPI/rose/semantics/Registers.C
M dataflowAPI/rose/semantics/SymEvalSemantics.h
M dataflowAPI/src/ABI.C
M dataflowAPI/src/Absloc.C
M dataflowAPI/src/AbslocInterface.C
M dataflowAPI/src/RegisterMap.C
M dataflowAPI/src/RoseInsnFactory.C
M dataflowAPI/src/RoseInsnFactory.h
M dataflowAPI/src/SymEval.C
M dataflowAPI/src/SymEvalPolicy.C
M dataflowAPI/src/SymEvalPolicy.h
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 dynC_API/CMakeLists.txt
M dyninstAPI/CMakeLists.txt
M dyninstAPI/h/BPatch_basicBlock.h
M dyninstAPI/h/BPatch_parRegion.h
M dyninstAPI/h/BPatch_point.h
M dyninstAPI/h/BPatch_snippet.h
M dyninstAPI/src/BPatch.C
M dyninstAPI/src/BPatch_basicBlock.C
M dyninstAPI/src/BPatch_flowGraph.C
M dyninstAPI/src/BPatch_function.C
M dyninstAPI/src/BPatch_memoryAccessAdapter.C
M dyninstAPI/src/BPatch_memoryAccessAdapter.h
M dyninstAPI/src/BPatch_parRegion.C
M dyninstAPI/src/BPatch_point.C
M dyninstAPI/src/BPatch_snippet.C
M dyninstAPI/src/BPatch_type.C
M dyninstAPI/src/Parsing.C
M dyninstAPI/src/Relocation/CFG/RelocBlock.C
M dyninstAPI/src/Relocation/CodeBuffer.C
M dyninstAPI/src/Relocation/DynPointMaker.C
M dyninstAPI/src/Relocation/DynPointMaker.h
M dyninstAPI/src/Relocation/Transformers/Instrumenter.C
M dyninstAPI/src/Relocation/Transformers/Movement-adhoc.C
M dyninstAPI/src/Relocation/Transformers/Movement-adhoc.h
M dyninstAPI/src/Relocation/Transformers/Movement-analysis.C
M dyninstAPI/src/Relocation/Transformers/Movement-analysis.h
M dyninstAPI/src/Relocation/Widgets/CFPatch.C
M dyninstAPI/src/Relocation/Widgets/CFWidget-ppc.C
M dyninstAPI/src/Relocation/Widgets/CFWidget-x86.C
M dyninstAPI/src/Relocation/Widgets/CFWidget.C
M dyninstAPI/src/Relocation/Widgets/CFWidget.h
M dyninstAPI/src/Relocation/Widgets/InsnWidget.C
M dyninstAPI/src/Relocation/Widgets/InsnWidget.h
M dyninstAPI/src/Relocation/Widgets/PCWidget.C
M dyninstAPI/src/Relocation/Widgets/PCWidget.h
M dyninstAPI/src/Relocation/Widgets/RelDataWidget.C
M dyninstAPI/src/Relocation/Widgets/RelDataWidget.h
M dyninstAPI/src/Relocation/Widgets/StackModWidget.C
M dyninstAPI/src/Relocation/Widgets/StackModWidget.h
M dyninstAPI/src/Relocation/Widgets/Widget.h
M dyninstAPI/src/StackMod/StackAccess.C
M dyninstAPI/src/StackMod/StackAccess.h
M dyninstAPI/src/StackMod/StackModChecker.C
M dyninstAPI/src/StackMod/StackModChecker.h
M dyninstAPI/src/addressSpace.C
M dyninstAPI/src/addressSpace.h
M dyninstAPI/src/ast.C
M dyninstAPI/src/ast.h
M dyninstAPI/src/block.h
M dyninstAPI/src/codegen-x86.C
M dyninstAPI/src/codegen.C
M dyninstAPI/src/frameChecker.C
M dyninstAPI/src/frameChecker.h
M dyninstAPI/src/function.C
M dyninstAPI/src/function.h
M dyninstAPI/src/hybridInstrumentation.C
M dyninstAPI/src/hybridOverwrites.C
M dyninstAPI/src/image.C
M dyninstAPI/src/inst-aarch64.C
M dyninstAPI/src/inst-power.C
M dyninstAPI/src/inst-x86.C
M dyninstAPI/src/instPoint.C
M dyninstAPI/src/instPoint.h
M dyninstAPI/src/mapped_object.C
M dyninstAPI/src/parse-cfg.C
M dyninstAPI/src/parse-cfg.h
M dyninstAPI/src/parse-power.C
M dyninstAPI/src/parse-x86.C
M dyninstAPI/src/pcEventMuxer.C
M elf/src/Elf_X.C
M examples/CMakeLists.txt
M examples/unstrip/callback.C
M examples/unstrip/fingerprint.C
M examples/unstrip/types.h
M examples/unstrip/util.C
M examples/unstrip/util.h
M instructionAPI/CMakeLists.txt
M instructionAPI/h/ArchSpecificFormatters.h
M instructionAPI/h/BinaryFunction.h
M instructionAPI/h/Dereference.h
M instructionAPI/h/Expression.h
M instructionAPI/h/Immediate.h
M instructionAPI/h/Instruction.h
M instructionAPI/h/InstructionAST.h
M instructionAPI/h/InstructionDecoder.h
M instructionAPI/h/Operand.h
R instructionAPI/h/Operation.h
A instructionAPI/h/Operation_impl.h
M instructionAPI/h/Register.h
M instructionAPI/h/Result.h
M instructionAPI/src/ArchSpecificFormatters.C
M instructionAPI/src/Immediate.C
M instructionAPI/src/Instruction.C
M instructionAPI/src/InstructionAST.C
M instructionAPI/src/InstructionDecoder-aarch64.C
M instructionAPI/src/InstructionDecoder-aarch64.h
M instructionAPI/src/InstructionDecoder-power.C
M instructionAPI/src/InstructionDecoder-power.h
M instructionAPI/src/InstructionDecoder-x86.C
M instructionAPI/src/InstructionDecoder-x86.h
M instructionAPI/src/InstructionDecoder.C
M instructionAPI/src/InstructionDecoderImpl.C
M instructionAPI/src/InstructionDecoderImpl.h
M instructionAPI/src/Operand.C
M instructionAPI/src/Operation.C
M instructionAPI/src/Register.C
M instructionAPI/src/power_opcode_tables.C
M parseAPI/CMakeLists.txt
M parseAPI/doc/example.cc
M parseAPI/h/CFG.h
M parseAPI/h/CFGFactory.h
M parseAPI/h/CodeObject.h
M parseAPI/h/CodeSource.h
M parseAPI/h/InstructionAdapter.h
M parseAPI/h/Location.h
A parseAPI/h/LockFreeQueue.h
M parseAPI/h/ParseCallback.h
M parseAPI/src/Block.C
M parseAPI/src/BoundFactCalculator.C
M parseAPI/src/BoundFactData.C
M parseAPI/src/BoundFactData.h
M parseAPI/src/CFGFactory.C
M parseAPI/src/CFGModifier.C
M parseAPI/src/CodeObject.C
M parseAPI/src/CodeSource.C
M parseAPI/src/Function.C
M parseAPI/src/IA_IAPI.C
M parseAPI/src/IA_IAPI.h
M parseAPI/src/IA_aarch64.C
M parseAPI/src/IA_aarch64.h
M parseAPI/src/IA_power.C
M parseAPI/src/IA_power.h
M parseAPI/src/IA_x86.C
M parseAPI/src/IA_x86.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
M parseAPI/src/JumpTableIndexPred.C
M parseAPI/src/ParseCallback.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/ParserDetails.h
M parseAPI/src/ProbabilisticParser.C
M parseAPI/src/SymbolicExpression.C
M parseAPI/src/SymbolicExpression.h
M parseAPI/src/SymtabCodeSource.C
M parseAPI/src/ThunkData.C
M parseAPI/src/debug_parse.C
M parseThat/CMakeLists.txt
M patchAPI/CMakeLists.txt
M patchAPI/h/PatchCFG.h
M patchAPI/h/Point.h
M patchAPI/src/ParseCallback.C
M patchAPI/src/PatchBlock.C
M patchAPI/src/PatchFunction.C
M patchAPI/src/PatchMgr.C
M patchAPI/src/PatchModifier.C
M patchAPI/src/Point.C
M patchAPI/src/PointMaker.C
M stackwalk/CMakeLists.txt
M stackwalk/src/callchecker-IAPI.C
M stackwalk/src/framestepper.C
M stackwalk/src/linux-aarch64-swk.C
M stackwalk/src/linux-x86-swk.C
M symtabAPI/CMakeLists.txt
M symtabAPI/h/Collections.h
M symtabAPI/h/Module.h
M symtabAPI/h/StringTable.h
M symtabAPI/h/Symtab.h
M symtabAPI/h/Type.h
M symtabAPI/src/Collections.C
M symtabAPI/src/Function.C
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.h
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/dwarfWalker.h
M symtabAPI/src/emitElf.C
M symtabAPI/src/parseDwarf.C
M symtabAPI/src/parseStab.C
Log Message:
-----------
Merge pull request #488 from dyninst/new-parallel-parsing
Merge parallel code parsing
Compare: https://github.com/dyninst/dyninst/compare/5c9770a97903...896144c647d5
**NOTE:** This service has 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.
|