[DynInst_API:] Incoming changes to ParseAPI and InstructionAPI


Date: Thu, 9 Nov 2017 19:41:07 +0000
From: Bill Williams <bill@xxxxxxxxxxx>
Subject: [DynInst_API:] Incoming changes to ParseAPI and InstructionAPI
As many of you know, we've been working for some time on achieving better parsing performance in Dyninst through task-based parallelism. In the course of implementing these changes, we've found that we need to change the InstructionAPI abstractions to avoid bottlenecks around heap allocation; in short, everything in InstructionAPI will become value objects rather than shared pointers. The first phase of this (converting Instructions and Operations to value semantics) is already implemented but not merged to master; the second phase, where Operands and Expressions change their interface, is still being designed.

The intent for users: everywhere you use an Instruction::Ptr or any other InstructionAPI shared pointer typedef, use the class directly by value instead. I am not committed to any particular approach to handling cases where users rely on casting Expressions to a particular derived type. If you have a use case that you want to ensure will still work (or will be adaptable to work) please let me know.

I'll announce when the first wave of changes hits master; that's going to involve some matching test suite changes and add some new build dependencies. In the meantime, I welcome any feedback folks have on this.

--bw
[← Prev in Thread] Current Thread [Next in Thread→]
  • [DynInst_API:] Incoming changes to ParseAPI and InstructionAPI, Bill Williams <=