Affiliation:
1. Intel Corporation
2. University of Colorado
Abstract
Robust and powerful software instrumentation tools are essential for program analysis tasks such as profiling, performance evaluation, and bug detection. To meet this need, we have developed a new instrumentation system called
Pin
. Our goals are to provide
easy-to-use, portable, transparent
, and
efficient
instrumentation. Instrumentation tools (called
Pintools
) are written in C/C++ using Pin's rich API. Pin follows the model of ATOM, allowing the tool writer to analyze an application at the instruction level without the need for detailed knowledge of the underlying instruction set. The API is designed to be
architecture independent
whenever possible, making Pintools source compatible across different architectures. However, a Pintool can access architecture-specific details when necessary. Instrumentation with Pin is mostly
transparent
as the application and Pintool observe the application's original, uninstrumented behavior. Pin uses
dynamic compilation
to instrument executables while they are running. For efficiency, Pin uses several techniques, including inlining, register re-allocation, liveness analysis, and instruction scheduling to optimize instrumentation. This fully automated approach delivers significantly better instrumentation performance than similar tools. For example, Pin is 3.3x faster than Valgrind and 2x faster than DynamoRIO for basic-block counting. To illustrate Pin's versatility, we describe two Pintools in daily use to analyze production software. Pin is publicly available for Linux platforms on four architectures: IA32 (32-bit x86), EM64T (64-bit x86), Itanium®, and ARM. In the ten months since Pin 2 was released in July 2004, there have been over 3000 downloads from its website.
Publisher
Association for Computing Machinery (ACM)
Subject
Computer Graphics and Computer-Aided Design,Software
Reference30 articles.
1. AMBER home page. http://amber.scripps.edu/.]] AMBER home page. http://amber.scripps.edu/.]]
2. Fluent home page. http://www.fluent.com/.]] Fluent home page. http://www.fluent.com/.]]
3. LS-DYNA home page. http://www.lstc.com/.]] LS-DYNA home page. http://www.lstc.com/.]]
4. RenderMan home page. http://RenderMan.pixar.com/.]] RenderMan home page. http://RenderMan.pixar.com/.]]
5. The StarJIT compiler: A dynamic compiler for managed runtime environments;Adl-Tabatabai A.-R.;Intel Technology Journal,2003
Cited by
1452 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献