Jump to ratings and reviews
Rate this book

Optimizing Compilers for Modern Architectures: A Dependence-based Approach

Rate this book
Modern computer architectures designed with high-performance microprocessors offer tremendous potential gains in performance over previous designs. Yet their very complexity makes it increasingly difficult to produce efficient code and to realize their full potential. This landmark text from two leaders in the field focuses on the pivotal role that compilers can play in addressing this critical issue. The basis for all the methods presented in this book is data dependence, a fundamental compiler analysis tool for optimizing programs on high-performance microprocessors and parallel architectures. It enables compiler designers to write compilers that automatically transform simple, sequential programs into forms that can exploit special features of these modern architectures. The text provides a broad introduction to data dependence, to the many transformation strategies it supports, and to its applications to important optimization problems such as parallelization, compiler memory hierarchy management, and instruction scheduling. The authors demonstrate the importance and wide applicability of dependence-based compiler optimizations and give the compiler writer the basics needed to understand and implement them. They also offer cookbook explanations for transforming applications by hand to computational scientists and engineers who are driven to obtain the best possible performance of their complex applications.The approaches presented are based on research conducted over the past two decades, emphasizing the strategies implemented in research prototypes at Rice University and in several associated commercial systems. Randy Allen and Ken Kennedy have provided an indispensable resource for researchers, practicing professionals, and graduate students engaged in designing and optimizing compilers for modern computer architectures.

816 pages, Hardcover

First published September 26, 2001

9 people are currently reading
131 people want to read

About the author

Randy Allen

112 books

Ratings & Reviews

What do you think?
Rate this book

Friends & Following

Create a free account to discover what your friends think of this book!

Community Reviews

5 stars
8 (40%)
4 stars
12 (60%)
3 stars
0 (0%)
2 stars
0 (0%)
1 star
0 (0%)
Displaying 1 - 2 of 2 reviews
Profile Image for Nick Black.
Author 2 books879 followers
January 26, 2009
GT Barnes & Noble 2009-01-0x. Out of Rice's vaunted compiler research team comes this deeply satisfying textbook, with a complete and thorough treatment of memory hierarchy issues that Advanced Compiler Design and Implementation leaves aside for deeper handling of code generation and more traditional optimization issues (I still eagerly await a compiler design book that addresses power consumption issues of object code!). Together with Muchinek's classic, this book will provide the sedulous student with a thorough coverage of the art of compilation, the wealth of powerful results from research and theory useful and indeed necessary for proper compiler design (Lengauer-Tarjan's algorithm for discovery of a graph's strongly-connected components as applied in SSA, Kennedy's dominance algorithm, applications of the Knuth-Bindex term rewriting algorithm to language equations, etc -- there's a wealth of badass algorithms that find application in the compiler backend, a far richer forest in fact than the rather boring and "solved" frontend, with its ll(n) parsers and fifty PhD's arguing about how best to generally annotate grammars (fellow GoodReader Brian McNamara might have corrections or contributions here)), and why writing these things is so goddamn fun -- one of the few tasks worthy of an elite developer, in command of both theory and technique.
Displaying 1 - 2 of 2 reviews

Can't find what you're looking for?

Get help and learn more about the design.