Efficient path profiling

@article{Ball1996EfficientPP,
  title={Efficient path profiling},
  author={T. Ball and J. Larus},
  journal={Proceedings of the 29th Annual IEEE/ACM International Symposium on Microarchitecture. MICRO 29},
  year={1996},
  pages={46-57}
}
  • T. Ball, J. Larus
  • Published 1996
  • Computer Science
  • Proceedings of the 29th Annual IEEE/ACM International Symposium on Microarchitecture. MICRO 29
A path profile determines how many times each acyclic path in a routine executes. [...] Key Method Instrumented programs run with overhead comparable to the best previous profiling techniques. On the SPEC95 benchmarks, path profiling overhead averaged 31%, as compared to 16% for efficient edge profiling. Path profiling also identifies longer paths than a previous technique, which predicted paths from edge profiles (average of 88, versus 34 instructions). Moreover, profiling shows that the SPEC95 train input…Expand
A Technique of Profiling Selective Paths
  • L. Wang, Bixin Li
  • Computer Science
  • 2011 IEEE 35th Annual Computer Software and Applications Conference
  • 2011
TLDR
A novel technique called PSP (Profiling Selective Paths) has been introduced to profile selective paths, which can handle selection for both acyclic and cyclic paths, and increase the execution efficiency by early termination on uninterested paths. Expand
Edge profiling versus path profiling: the showdown
TLDR
Results indicate the usefulness of the algorithms for characterizing edge profiles and selecting hot paths, and show that various hot path selection algorithms based on edge profiles work extremely well in most cases, but that path profiling is needed in some cases. Expand
Profiling All Paths
TLDR
A new profiling technique called PAP (profiling all paths), which can profile finite-length paths inside a procedural and how to use PAP to profile executed sequences on the method level is discussed. Expand
Practical path profiling for dynamic optimizers
TLDR
The branch-flow metric is introduced to measure path flow as a function of branch decisions, rather than weighting all paths equally as in prior work, to make PPP appealing for use by dynamic compilers. Expand
Representing, Detecting, and Profiling Paths in Hardware
TLDR
A low-overhead, programmable hardware path profiling scheme that can be configured to detect a variety of paths including acyclic, intraprocedural paths, extended paths and sub-paths for the Whole Program Path and track one of the many architectural metrics along paths. Expand
Targeted path profiling: lower overhead path profiling for staged dynamic optimization systems
TLDR
The results suggest that on average the overhead of profile collection can be reduced by half (SPEC95) to almost two-thirds (SPEC2000) relative to the Ball-Larus algorithm with minimal impact on the information collected. Expand
Profiling all paths: A new profiling technique for both cyclic and acyclic paths
TLDR
A new profiling technique called PAP (Profiling All Paths), which can profile all finite-length paths within a procedure, and is found to be effective and efficient in profiling both cyclic and acyclic paths. Expand
A programmable hardware path profiler
TLDR
A low-overhead, non-intrusive hardware path profiling scheme that can be programmed to detect several types of paths including acyclic, intra-procedural paths, paths for a whole program path and extended paths, enabling context-sensitive performance monitoring and bottleneck analysis. Expand
Path-based compilation
TLDR
This thesis shows how to collect path profiles efficiently, then applies the path profiles to two optimizations, static correlated branch prediction and path-based superblock scheduling, which address different performance aspects of modern machines. Expand
An efficient online path profiling framework for Java just-in-time compilers
TLDR
An efficient online path profiling technique, called structural path profiling (SPP), suitable for JIT compilers, to partition the target method into a hierarchy of the nested graphs based on the loop structure, and then to profile each graph independently. Expand
...
1
2
3
4
5
...

References

SHOWING 1-10 OF 31 REFERENCES
Optimally profiling and tracing programs
TLDR
Algorithms for inserting monitoring code to profile and trace programs and show that edge profiling with edge counters works well in practice because it is simple and efficient and finds optimal counter placements in most cases. Expand
Branch prediction for free
TLDR
This work presents a program-based branch predictor that performs well for a large and diverse set of programs written in C and Fortran and focuses on heuristics for predicting non-loop branches, which dominate the dynamic branch count of many programs. Expand
Trace Selection For Compiling Large C Application Programs To Microcode
  • P. Chang, W. Hwu
  • Computer Science
  • [1988] Proceedings of the 21st Annual Workshop on Microprogramming and Microarchitecture - MICRO '21
  • 1988
TLDR
This work reports the distribution of control transfers categorized according to their potential impact on the microcode optimizations using the IMPACT C compiler, which contains integrated profiling and analysis tools. Expand
Improving the accuracy of static branch prediction using branch correlation
TLDR
A profile-based code transformation that exploits branch correlation to improve the accuracy of static branch prediction schemes and encodes branch history information in the program counter through the duplication and placement of program basic blocks. Expand
Efficiently counting program events with support for on-line queries
TLDR
This paper represents an instrumentation method for efficiently counting events in a program's execution, with support for on-line queries of the event count, and guarantees that accurate event counts can be obtained efficiently at every point in the execution. Expand
Predicting conditional branch directions from previous runs of a program
TLDR
It is suggested that even code with a complex flow of control, including systems utilities and language processors written in C, are dominated by branches which go in one way, and that this direction usually varies little when one changes the data used as the predictor and target. Expand
Bulldog: A Compiler for VLIW Architectures
TLDR
The Bulldog compiler described here uses several new compilation techniques: trace scheduling to find more parallelism, memory-reference and memorybank disambiguation to increase memory bandwidth, and new code-generation algorithms. Expand
Trace Scheduling: A Technique for Global Microcode Compaction
  • J. A. Fisher
  • Computer Science
  • IEEE Transactions on Computers
  • 1981
TLDR
Compilation of high-level microcode languages into efficient horizontal microcode and good hand coding probably both require effective global compaction techniques. Expand
EEL: machine-independent executable editing
TLDR
EEL supports a machine- and system-independent editing model that enables tool builders to modify an executable without being aware of the details of the underlying architecture or operating system or being concerned with the consequences of deleting instructions or adding foreign code. Expand
Bal96] Vasanth Bala. Low overhead path profiling
  • Bal96] Vasanth Bala. Low overhead path profiling
  • 1996
...
1
2
3
4
...