scispace - formally typeset
Proceedings ArticleDOI

ATOM: a system for building customized program analysis tools

Amitabh Srivastava, +1 more
- Vol. 39, Iss: 4, pp 196-205
Reads0
Chats0
TLDR
ATOM as mentioned in this paper is a single framework for building a wide range of customized program analysis tools, including block counting, profiling, dynamic memory recording, instruction and data cache simulation, pipeline simulation, evaluating branch prediction, and instruction scheduling.
Abstract:Ā 
ATOM (Analysis Tools with OM) is a single framework for building a wide range of customized program analysis tools. It provides the common infrastructure present in all code-instrumenting tools; this is the difficult and time-consuming part. The user simply defines the tool-specific details in instrumentation and analysis routines. Building a basic block counting tool like Pixie with ATOM requires only a page of code.ATOM, using OM link-time technology, organizes the final executable such that the application program and user's analysis routines run in the same address space. Information is directly passed from the application program to the analysis routines through simple procedure calls instead of inter-process communication or files on disk. ATOM takes care that analysis routines do not interfere with the program's execution, and precise information about the program is presented to the analysis routines at all times. ATOM uses no simulation or interpretation.ATOM has been implemented on the Alpha AXP under OSF/1. It is efficient and has been used to build a diverse set of tools for basic block counting, profiling, dynamic memory recording, instruction and data cache simulation, pipeline simulation, evaluating branch prediction, and instruction scheduling.

read more

Citations
More filters
Journal ArticleDOI

Pin: building customized program analysis tools with dynamic instrumentation

TL;DR: The goals are to provide easy-to-use, portable, transparent, and efficient instrumentation, and to illustrate Pin's versatility, two Pintools in daily use to analyze production software are described.
Proceedings ArticleDOI

Automatically characterizing large scale program behavior

TL;DR: This work quantifies the effectiveness of Basic Block Vectors in capturing program behavior across several different architectural metrics, explores the large scale behavior of several programs, and develops a set of algorithms based on clustering capable of analyzing this behavior.
Journal ArticleDOI

Eraser: a dynamic data race detector for multithreaded programs

TL;DR: A new tool, called Eraser, is described, for dynamically detecting data races in lock-based multithreaded programs, which uses binary rewriting techniques to monitor every shared-monory reference and verify that consistent locking behavior is observed.
Proceedings ArticleDOI

Eraser: a dynamic data race detector for multi-threaded programs

TL;DR: Eraser as mentioned in this paper uses binary rewriting techniques to monitor every shared memory reference and verify that consistent locking behavior is observed in lock-based multi-threaded programs, which can be used to detect data races.

Benchmarking modern multiprocessors

TL;DR: A methodology to design effective benchmark suites is developed and its effectiveness is demonstrated by developing and deploying a benchmark suite for evaluating multiprocessors called PARSEC, which has been adopted by many architecture groups in both research and industry.
References
More filters
Proceedings ArticleDOI

Shade: a fast instruction-set simulator for execution profiling

TL;DR: A tool called Shade is described which combines efficient instruction-set simulation with a flexible, extensible trace generation capability and discusses instruction set emulation in general.
Proceedings ArticleDOI

Limits of instruction-level parallelism

David W. Wall
TL;DR: The results of simulations of 18 different test programs under 375 different models of available parallelism analysis are presented, showing how simulations based on instruction traces can model techniques at the limits of feasibility and even beyond.
Proceedings ArticleDOI

EEL: machine-independent executable editing

TL;DR: 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.
Journal ArticleDOI

The packer filter: an efficient mechanism for user-level network code

TL;DR: The packet filter is described, a kernel-resident, protocol-independent packet demultiplexer, which performs quite well, and has been in production use for several years.
Book

Alpha Architecture Reference Manual

TL;DR: Part 1: Common Architecture * Part 2: Specific Operating System PALcode Architecture * part 3: Console Interface Architecture * Appendices
Related Papers (5)
Trending Questions (2)
Does atom really exist ?

Yes, ATOM does exist as a system for building customized program analysis tools, providing a common infrastructure for code-instrumenting tools and enabling the creation of various analysis tools efficiently.

What is an atom?

ATOM is a system for creating customized program analysis tools efficiently. It provides a common infrastructure for code-instrumenting tools, allowing users to define tool-specific details easily.