Obtaining an accurate whole program path (WPP) that captures a program’s runtime behaviour in terms of a control-flow trace has a number of well-known benefits, including opportunities for code optimization, bug detection, program analysis refinement, etc. Existing techniques to compute WPPs perform sub-optimal instrumentation resulting in significant space and time overheads. Our goal in this thesis is to minimize these overheads without losing precision. To do so, we design a novel and scalable whole program analysis to determine instrumentation points used to obtain WPPs. Our approach is divided into three components: (a) an efficient summarization technique for inter-procedural path reconstruction, (b) specialized data structures calle...
Profiling techniques to detect performance bugs in applications are usually customized to detect a s...
Applications must scale well to make efficient use of even medium-scale parallel systems. Because sc...
Abstract. This paper describes new techniques to help with testing and debugging, using information ...
Most dynamic program analysis techniques such as profile-driven compiler optimizations, software test...
This paper describes algorithms for inserting monitoring code to profile and trace programs. These a...
Identifying the hottest paths in the control flow graph of a routine can direct optimizations to por...
Effective dynamic virtual-machine optimization depends on quickly finding and optimizing frequently...
Path profiles provide a more accurate characterization of a program&s dynamic behavior than basic bl...
A path profile determines how many times each acyclic path in a routine executes. This type of profi...
We present and solve a path optimization problem on programs. Given a set of program nodes, called c...
Static analysis requires the full knowledge of the overall program structure. The structure of a pro...
We describe recent work on designing an environment called Java PathExplorer for monitoring the exec...
Data-flow analysis computes its solutions over the paths in a control-flow graph. These paths---whet...
We describe recent work on designing an environment, called JavaPathExplorer, for monitoring the exe...
Calculating the worst-case execution time (WCET) of real-time tasks is still a tedious job. Programm...
Profiling techniques to detect performance bugs in applications are usually customized to detect a s...
Applications must scale well to make efficient use of even medium-scale parallel systems. Because sc...
Abstract. This paper describes new techniques to help with testing and debugging, using information ...
Most dynamic program analysis techniques such as profile-driven compiler optimizations, software test...
This paper describes algorithms for inserting monitoring code to profile and trace programs. These a...
Identifying the hottest paths in the control flow graph of a routine can direct optimizations to por...
Effective dynamic virtual-machine optimization depends on quickly finding and optimizing frequently...
Path profiles provide a more accurate characterization of a program&s dynamic behavior than basic bl...
A path profile determines how many times each acyclic path in a routine executes. This type of profi...
We present and solve a path optimization problem on programs. Given a set of program nodes, called c...
Static analysis requires the full knowledge of the overall program structure. The structure of a pro...
We describe recent work on designing an environment called Java PathExplorer for monitoring the exec...
Data-flow analysis computes its solutions over the paths in a control-flow graph. These paths---whet...
We describe recent work on designing an environment, called JavaPathExplorer, for monitoring the exe...
Calculating the worst-case execution time (WCET) of real-time tasks is still a tedious job. Programm...
Profiling techniques to detect performance bugs in applications are usually customized to detect a s...
Applications must scale well to make efficient use of even medium-scale parallel systems. Because sc...
Abstract. This paper describes new techniques to help with testing and debugging, using information ...