• DocumentCode
    995871
  • Title

    A Case for Compressing Traces with BDDs

  • Author

    Price, Graham D. ; Vachharajani, Manish

  • Author_Institution
    Dept. of Electr. & Comput. Eng., Colorado Univ., Boulder, CO
  • Volume
    5
  • Issue
    2
  • fYear
    2006
  • Firstpage
    18
  • Lastpage
    18
  • Abstract
    Instruction-level traces are widely used for program and hardware analysis. However, program traces for just a few seconds of execution are enormous, up to several terabytes in size, uncompressed. Specialized compression can shrink traces to a few gigabytes, but trace analyzers typically stream the decompressed trace through the analysis engine. Thus, the complexity of analysis depends on the decompressed trace size (even though the decompressed trace is never stored to disk). This makes many global or interactive analyses infeasible. This paper presents a method to compress program traces using binary decision diagrams (BDDs). BDDs intrinsically support operations common to many desirable program analyses and these analyses operate directly on the BDD. Thus, they are often polynomial in the size of the compressed representation. The paper presents mechanisms to represent a variety of trace data using BDDs and shows that BDDs can store, in 1 GB of RAM, the entire data-dependence graph of traces with over 1 billion instructions. This allows rapid computation of global analyses such as heap-object liveness and dynamic slicing
  • Keywords
    binary decision diagrams; program slicing; binary decision diagrams; data-dependence graph; dynamic slicing; global analyses; hardware analysis; heap-object liveness; instruction-level traces; program analysis; program traces; rapid computation; specialized compression; trace analyzers; traces compression; Binary decision diagrams; Boolean functions; Data analysis; Data structures; Engines; Hardware; Performance analysis; Polynomials; Read-write memory; Visualization; Software Engineering; Software Processor validation EngineeringEngineering; Software/Program Verification; Software/Software; Software/Software Engineering; Testing and Debugging; Tracing; Validation;
  • fLanguage
    English
  • Journal_Title
    Computer Architecture Letters
  • Publisher
    ieee
  • ISSN
    1556-6056
  • Type

    jour

  • DOI
    10.1109/L-CA.2006.17
  • Filename
    4069175