CMSC 430, Spring 2014

Introduction to Compilers

Practice Problems & Tests

Practice problems

Quizzes

Tests

  • Midterm 1 - Thu Mar 13th

  • Midterm 2 - Thu May 1st

  • Final Exam - Wed, May 21, 10:30am-12:30pm, CSI 1121
    • Covers everything (about 25-30% new material)
    • New topics
        Dataflow analysis & frameworks
        • be able to solve a variety of dataflow problems
        • understand properties of dataflow lattices & frameworks
      • Instruction scheduling
        • compute dependences between statements
        • calculate critical path in DAG
        • schedule instructions for single/multiple issue CPUs
      • Register allocation
        • compute live ranges
        • build interference graph using live ranges
        • globally allocate registers through coloring using graph simplification
        • insert spill code
      • Static single assignment
        • calculate dominance frontiers
        • determine where to insert phi-nodes
        • not needed - dominator tree, iterated dominance frontiers
      • Advance topics
        • data locality - examples of temporal, spatial locality
        • data dependence - loop independent, loop carried
        • future - power, exploiting new hardware/language features
    • Practice problems 4.7-8, 5.1, 5.2, 5.3a, 5.3b, 6.2a, 6.2d
    • Examples - Spring 09 (solutions)