Short Course in Oregon, 7/95 (Linda M. Pease)
Tue, 27 Jun 1995 14:48:43 GMT

          From comp.compilers

Related articles
Short Course in Oregon, 7/95 (1995-06-27)
| List of all articles for this month |

Newsgroups: comp.compilers
From: (Linda M. Pease)
Keywords: courses, optimize
Organization: Oregon Graduate Institute of Science & Technology
Date: Tue, 27 Jun 1995 14:48:43 GMT
Status: RO

Oregon Graduate Institute of Science & Technology, Office of Continuing
Education, offers a short course at the OGI campus near Portland, Oregon.

COMPILER ANALYSIS AND OPTIMIZATION M-F, July 24-28, 1995, 8:30am-5pm

Course fee: $1,695 (includes course instruction, materials, break
refreshments and lunches, Monday night reception and Thursday night

Course Instructor: Michael Wolfe

            Many classical code analysis and optimization algorithms have been
developed over the past 35 years. While these are firmly based on a solid
theoretical foundation, many optimizations have become significantly more
complex due to aggressive processor architectures. For instance, register
allocation and instruction scheduling are complicated because pipeline and
memory latencies, functional unit and datapath reservations, and explicit
delayed operations must be taken into account. Moreover, with the
parallelism inherent in current processor designs, code generation options
can be used that would not make sense on a simple sequential processor.

Course Outline
* Compiler Framework
            Front end, optimizer, code generation, peephole
            optimizations, basic blocks, control flow graph, expression
            trees or DAGs.
* Background
            Logic, sets, relations, lattices, monotonicity, graphs, trees,
            graph algorithms, strongly connected components,dominators.
* Data-Flow Analysis
            Monotone data-flow framework, iterative solution, live
            variables, reaching definitions, dominators, syntax-based
            analysis, interval analysis, slotwise analysis, sparse
            evaluation graphs.
* Dominators
            Dominator trees, fast dominator algorithm, loop analysis.
* Machine Independent Optimizations
            Within a basic block, across basic blocks, constant
            propagation, availability, redundancy elimination, value
            numbering, range-check optimizations.
* Static Single Assignment and Reference Chaining
            Efficient use-def chains, constant propagation.
* Loop Optimizations
            Code floating, partial redundancy elimination, strength
            reduction, linear test replacement, unswitching.
* Procedure Optimization
            Leaf procedures, tail recursion, tail calls, constant
            propagation, modify/reference analysis, parameter
            alias analysis, call graph construction.
* Code Replication
            Loop rotation, procedure integration, loop unrolling,
            basic block cloning.
* Local Register Allocation
            Optimality, local allocation across basic blocks.
* Global Register Allocation
            Coloring algorithms, spill heuristics, coalescing, live
            range splitting.
* Other Register Allocation Heuristics
            Hierarchical allocation, allocation in loops, cliques.
* Instruction Scheduling
            Basic block scheduling, filling delay slots, scheduling
            across basic blocks, code replication, control dependence,
            speculative scheduling, conditional execution, interaction
            with register allocation.
* Scheduling in Loops
            Software pipelining, loop unrolling.
* Peephole Optimizations
            Tail merging, jump optimizations, branch prediction,
            instruction placement.
  * Debugging
            Currency of values, reporting values and position.

    About the Instructor
            Michael Wolfe, Ph.D., is an associate professor of Computer Science
and Engineering at Oregon Graduate Institute of Science & Technology. His
research interests are compiler optimizations for high performance
computer systems, programming languages and computer architecture. Dr.
Wolfe received his Ph.D. from the University of Illinois in 1982, where he
was one of the key developers in the Parafrase project. He co-founded
Kuck and Associates, Inc., a leading developer of commercial parallelizing
compiler tools, and was vice president until 1988, when he joined OGI. He
has served on numerous conference program committees, including POPL 88,
DM C 91, Supercomputing 92, PPoPP 93, and PLDI 94, and is program chair
for ICS 95 in Barcelona. He has been invited to give lectures in the
United States, Europe and Japan. His research group at OGI is exploring
the effectiveness and efficiency of novel compiler optimization

For a complete course brochure contact:
Linda M. Pease, Director
Office of Continuing Education
Oregon Graduate Institute of Science & Technology
PO Box 91000
Portland, OR 97291-1000
+1-503-690-1686 (fax)
WWW home page:


Post a followup to this message

Return to the comp.compilers page.
Search the comp.compilers archives again.