Saturday, December 12, 2015

CP7031 COMPILER OPTIMIZATION TECHNIQUES

CP7031       COMPILER OPTIMIZATION TECHNIQUES

UNIT I          INTRODUCTION

Language Processors - The Structure of a Compiler – The Evolution of Programming Languages- The Science of Building a Compiler – Applications of Compiler Technology Programming Language Basics - The Lexical Analyzer Generator -Parser Generator - Overview of Basic Blocks and Flow Graphs - Optimization of Basic Blocks - Principle Sources of Optimization.  

UNIT II          INSTRUCTION-LEVEL PARALLELISM 

Processor Architectures – Code-Scheduling Constraints – Basic-Block Scheduling –Global Code Scheduling – Software Pipelining. 

UNIT III        OPTIMIZING FOR PARALLELISM AND LOCALITY-THEORY

Basic Concepts – Matrix-Multiply: An Example - Iteration Spaces - Affine Array Indexes – Data Reuse Array data dependence Analysis.  

UNITIV        OPTIMIZING FOR PARALLELISM AND LOCALITY – APPLICATION  

Finding Synchronization - Free Parallelism – Synchronization Between Parallel Loops – Pipelining – Locality Optimizations – Other Uses of Affine Transforms. 

UNIT V         INTERPROCEDURAL ANALYSIS

Basic Concepts – Need for Interprocedural Analysis – A Logical Representation of Data Flow – A Simple Pointer-Analysis Algorithm – Context Insensitive Interprocedural Analysis - ContextSensitive Pointer-Analysis - Datalog Implementation by Binary Decision Diagrams.

REFERENCES: 

1. Alfred V. Aho, Monica S.Lam, Ravi Sethi, Jeffrey D.Ullman, “Compilers:Principles,              Techniques and Tools”, Second Edition, Pearson Education,2008. 
2.    Randy Allen, Ken Kennedy, “Optimizing Compilers for Modern Architectures: A                Dependence-based Approach”, Morgan Kaufmann Publishers, 2002. 
3. Steven S. Muchnick, “Advanced Compiler Design and Implementation”,Morgan      Kaufmann Publishers - Elsevier Science, India, Indian Reprint 2003. 

No comments:

Post a Comment