1st year     2nd year     3rd year     4th year    



B.Tech. IV (CO) Semester - 8

L

T

P

C

CO424 : ADVANCED COMPILER DESIGN (ELECTIVE-II)

3

1

0

4

COURSE OBJECTIVES
  • Introduce students to in depth concepts of each phase of a compiler.
  • Introduce students to compilation techniques to obtain higher performance.
  • Enable students to analyze different optimization techniques in compiler design.
COURSE OUTCOMES
After successful completion of this course, student will be able to
  • Identify the requirements of each phase of compiler.
  • Understand compilation techniques needed to obtain high performance on modern computer architectures.
  • Understand different optimization techniques and difference between them.
  • Understand Object-Oriented Language requirements in compiler design.
COURSE CONTENT
  • Introduction
  • (03 Hours)

    compiler structure, architecture and compilation, sources of improvement

  • Control flow analysis and Data flow analysis
  • (09 Hours)

    basic blocks & loopsbit vectors, iterative frameworks, interval analysis, reaching definitions, liveness dominators, control dependence

  • Static-single assignment
  • (03 Hours)

    Static-single assignment, constant propagation.

  • Global optimizations
  • (03 Hours)

    loop invariant code motion, common subexpression elimination, strength reduction, dead code elimination, loop optimizations, etc.

  • Register allocation
  • (03 Hours)

    Coloring, allocation, live range splitting.

  • Instruction scheduling
  • (03 Hours)

    Pipelined architectures, delayed-Load architectures, list scheduling.

  • Interprocedural analysis
  • (03 Hours)

    Side effects, flow-insensitive, flow-sensitive, constants, inlining.

  • Object-Oriented Language Features
  • (03 Hours)

    Alias analysis, method resolution, garbage collection, locality.

  • Just-In-Time Compilation
  • (03 Hours)

    Fast global optimization.

  • Garbage Collection
  • (03 Hours)

    automatic memory management and data locality

  • Data dependence analysis
  • (03 Hours)

    Dependence testing, dependence graphs.

  • Loop transformations
  • (03 Hours)

    interchange, tiling, fusion, distribution, splitting

  • Tutorials will be based on the coverage of the above topics separately
  • (14 Hours)

    (Total Contact Time: 42 Hours + 14 Hours = 56 Hours)

    BOOKS RECOMMENDED

    1. Aho, Sethi and Ullman, "Compilers: Principles, Techniques and Tools, Addison-Wesley, 2006
    2. Steven Muchnick, "Advanced Compiler Design Implementation", Morgan Kaufmann, 1/E, 1997.
    3. Randy Allen & Ken Kennedy, "Optimizing Compilers for Modern Architectures", Morgan Kaufmann, 1/E, 2001.
    4. Louden, Kenneth C. Louden, "Compiler Construction: Principles and Practice", 1/E, 1997.
    5. Ken Kennedy, Randy Allen "Optimizing Compilers for Modern Architectures: A Dependence-based Approach", 1/E, 2001.