Cooper_Engineering_a_Compiler(Second Edition) (Rice), страница 4

PDF-файл Cooper_Engineering_a_Compiler(Second Edition) (Rice), страница 4, который располагается в категории "разное" в предмете "конструирование компиляторов" изседьмого семестра. Cooper_Engineering_a_Compiler(Second Edition) (Rice), страница 4 - СтудИзба 2019-09-18 СтудИзба
Rice 1872

Описание файла

Файл "Cooper_Engineering_a_Compiler(Second Edition)" внутри архива находится в следующих папках: Rice, Купер и Торчсон - перевод. PDF-файл из архива "Rice", который расположен в категории "разное". Всё это находится в предмете "конструирование компиляторов" из седьмого семестра, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .

Просмотр PDF-файла онлайн

Текст 4 страницы из PDF

. . . . . . . . . . . . . . . . . . . . . . . . . . .7.4.1 Representations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7.4.2 Hardware Support for Relational Operations . . . . . . . . . . . . . . . .7.5 Storing and Accessing Arrays . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . .7.5.1 Referencing a Vector Element . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7.5.2 Array Storage Layout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7.5.3 Referencing an Array Element . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .7.5.4 Range Checking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7.6 Character Strings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7.6.1 String Representations . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7.6.2 String Assignment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7.6.3 String Concatenation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . .7.6.4 String Length . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7.7 Structure References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7.7.1 Understanding Structure Layouts . . . . .

. . . . . . . . . . . . . . . . . . . . . . .7.7.2 Arrays of Structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7.7.3 Unions and Runtime Tags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7.7.4 Pointers and Anonymous Values . . .

. . . . . . . . . . . . . . . . . . . . . . . . . .7.8 Control-Flow Constructs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7.8.1 Conditional Execution . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . .7.8.2 Loops and Iteration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7.8.3 Case Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7.9 Procedure Calls . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7.9.1 Evaluating Actual Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7.9.2 Saving and Restoring Registers . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . .7.10 Summary and Perspective . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Chapter Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . .Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .345347348348349350351353359359361362367369370370372373374375376377378380381384388392393394396397398CHAPTER 8 Introduction to Optimization . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4058.18.2Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Background . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . .8.2.1 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8.2.2 Considerations for Optimization . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8.2.3 Opportunities for Optimization . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . .405407408412415xiv Contents8.38.48.58.68.78.8Scope of Optimization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Local Optimization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . .8.4.1 Local Value Numbering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8.4.2 Tree-Height Balancing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Regional Optimization . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8.5.1 Superlocal Value Numbering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8.5.2 Loop Unrolling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Global Optimization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . .8.6.1 Finding Uninitialized Variables with LiveInformation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8.6.2 Global Code Placement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . .Interprocedural Optimization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8.7.1 Inline Substitution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8.7.2 Procedure Placement . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8.7.3 Compiler Organization for InterproceduralOptimization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Summary and Perspective . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Chapter Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Exercises . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .417420420428437437441445445451457458462467469470471CHAPTER 9 Data-Flow Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4759.19.29.39.49.5Introduction . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Iterative Data-Flow Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9.2.1 Dominance . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9.2.2 Live-Variable Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9.2.3 Limitations on Data-Flow Analysis . . . . . . . . . . . . . . . . . . . . . . . . . .9.2.4 Other Data-Flow Problems . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . .Static Single-Assignment Form . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9.3.1 A Simple Method for Building SSA Form . . . . . . . . . . . . . . . . . .9.3.2 Dominance Frontiers . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . .9.3.3 Placing φ-Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9.3.4 Renaming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9.3.5 Translation Out of SSA Form .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9.3.6 Using SSA Form . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Interprocedural Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . .9.4.1 Call-Graph Construction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9.4.2 Interprocedural Constant Propagation . . . . . . . . . . . . . . . . . . . . . . .Advanced Topics . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9.5.1 Structural Data-Flow Algorithms and Reducibility . . . . . . . . .9.5.2 Speeding up the Iterative Dominance Framework . . . . . . . . . .475477478482487490495496497500505510515519520522526527530Contents xv9.6 Summary and Perspective . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . 533Chapter Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 534Exercises . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 535CHAPTER 10 Scalar Optimizations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53910.1 Introduction .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10.2 Eliminating Useless and Unreachable Code . . . . . . . . . . . . . . . . . . . . . . . .10.2.1 Eliminating Useless Code . . . . . . . . . . . . . . . . . . . . . . .

Свежие статьи
Популярно сейчас