SDI Seminar

Speaker: Robert O'Callahan, CMU

Where Have All The Cycles Gone? DISSUADE: A Tool For Instruction-level Dynamic Slicing

Date: September 5, 1996

Abstract: Small applications based on large libraries often seem to be larger and slower than necessary. Researchers have ascribed much of this "bloat" to library functionality that is superfluous to applications' needs and that is not removed by existing compiler technology. Program slicing has been proposed as a technique for identifying this superfluous functionality. However, there is little quantitative evidence to justify this approach, or even to measure the size and nature of the problem.

We are addressing this gap by collecting program traces and analyzing them using dynamic data-flow analysis, to determine which program activities contributed to observable effects and which did not. At the instruction level, we see where the compiler and processor architecture are causing instructions to be executed unnecessarily. Projected to the source level, we can find superfluous code and data in libraries and also in the user's program -- a kind of advanced profiling.