New Features in Paradyn and Dyninst - PowerPoint PPT Presentation

1 / 17
About This Presentation
Title:

New Features in Paradyn and Dyninst

Description:

Beta Binary Rewriter. Optimizations. Code layout optimizations ... Full binary rewriter support. 64-bit PowerPC Linux support. SymtabAPI serialization ... – PowerPoint PPT presentation

Number of Views:68
Avg rating:3.0/5.0
Slides: 18
Provided by: bryan101
Category:

less

Transcript and Presenter's Notes

Title: New Features in Paradyn and Dyninst


1
New Features in Paradyn and Dyninst
  • Matt LeGendre
  • legendre_at_cs.wisc.edu

Ray Chen rchen_at_cs.umd.edu
2
Dyninst 5.2 Release
  • API additions
  • Slicing
  • Parallel Language Instructions
  • Platform/Feature Expansion
  • 64-bit AIX binary support
  • 32-bit PowerPC Linux
  • Beta Binary Rewriter
  • Optimizations
  • Code layout optimizations
  • New liveness-based tramp code generation

3
Release History
  • Source lines of code for 5.2 release

4
Release History
  • Source lines of code over time

5
Binary Rewriter Beta
  • Static binaries
  • Dynamic binaries (but not inter-library calls)
  • System V Elf Platforms
  • Linux, Solaris, BG/L
  • x86, SPARC, PPC, IA-64
  • Documentation available upon request

6
Code Optimizations
  • Code layout optimizations
  • New fix point code generation
  • Improved instrumentation layout
  • Register liveness analysis
  • Track all GPRs on x86-64, Power
  • Track flags register on x86

7
SymtabAPI 2.0
  • Released in December 2007
  • New Features
  • Debug Information
  • Line information
  • Local variables
  • Types
  • Address mapping
  • Binary generation

8
Slicing Interface
  • Additions to BPatch_function class
  • getControlDependenceGraph()
  • getDataDependenceGraph()
  • Control/data dependence graph that includes the
    parameter instruction, its successors, and
    predecessors
  • getSlice()
  • Union of control dependence graph and data
    dependence graph

9
Slicing Interface
  • New classes
  • BPatch_dependenceGraphNode class
  • Returned from all four slicing functions
  • Contains list of incoming and outgoing edges
  • BPatch_dependenceGraphEdge class
  • Directed edge between above graph nodes
  • All graphs built on demand
  • No unnecessary runtime overhead

10
Parallel Language Instruction Interface
  • Additions to BPatch_image class
  • getParRegions()
  • Provides access to parallel regions
  • Returns vector of BPatch_parRegion
  • New BPatch_parRegion class
  • Provides parallel language construct abstraction
  • Generic interface functions
  • getStartAddress()
  • getEndAddress()
  • getInstructions()
  • getClause()

11
Parallel Language Instruction Interface
  • getClause() to access region information
  • Every region has Region_Type key
  • OMP_PARALLEL, OMP_DO_FOR, etc
  • 15 types for OpenMP constructs
  • Other language regions easily added
  • Region specific keys
  • OMP_DO_FOR
  • CHUNK_SIZE
  • NUM_ITERATIONS
  • ORDERED
  • SCHEDULE

12
Annotations
  • Public interface outside components
  • Included from Annotatable.h
  • Already used extensively internally
  • DyninstAPI
  • SymtabAPI

Annotateltclass T, class Sgt(T , S ,
name_t) VectorltSgt getAnnotations(T , name_t)
13
Annotations
  • DyninstAPI
  • BPatch_function class
  • Parameter type lists
  • Return types
  • Dependency graphs (data, control, program)
  • Internal instruction class
  • Register read/write sets

14
Annotations
  • SymtabAPI
  • Symbol class
  • Filename
  • Symbol table name
  • Local variable type lists
  • Module class
  • Line information
  • User defined type collections
  • Symtab class
  • User specified
  • Functions, Regions, Types, Symbols

15
DyninstAPI 6.0
  • New APIs
  • StackwalkerAPI
  • InstructionAPI
  • Extended Functionality
  • Machine learning gap parsing
  • Full binary rewriter support
  • 64-bit PowerPC Linux support
  • SymtabAPI serialization
  • Convenient Features
  • Autoconf build system

16
(No Transcript)
17
Extra Funtime Stats
  • Repository history by size
Write a Comment
User Comments (0)
About PowerShow.com