COM 3356: Optimizing Compilers

Last updated 3 June 1996


I have been unable to connect to the newsgroup server, so I am providing the latest information on the peephole optimizer through this web page. Please tell your fellow students.

I have changed

    emit.c                emit_mips.sch
    cg_unary.c            codegen.sch
to fix bugs in the code generated for string constants and for conversions from float to int and from int to float. These bugs were capable of crashing the garbage collector.


Catalog description: Studies the code-generation phase of compilers, emphasizing the production of efficient object code. Topics include intermediate code representations; flow analysis; local, global, and peephole optimization; register allocation; and methods for generating code generators.

Administrivia

Outline

Assignments

  1. Closure analysis; free variables; a note concerning &.
  2. Closure optimization; benchmarking.

    A compiler for quirk13

    Lecture notes

    1. Introduction; escape analysis
    2. Passive closure analysis
    3. Interprocedural optimizations; lambda lifting
    4. Global optimizations
    5. Global register allocation
    6. Static single assignment form
    7. Local register allocation and instruction scheduling

    Benchmarks